You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by "Madisetti, Sumesh " <su...@citi.com> on 2007/08/09 23:51:46 UTC

Digester1.8 and recursive tag types

Hi,

I am having trouble parsing recursive tags with digester version 1.8.

With the digester def below, I am not able to get to any of the inner
list elements such as person.name=bar3. 

Any help appreciated.

Thanks
Sumesh

Xml -
=====
<list>
	<person><name>foo</name></person>
	<person><name>bar</name></person>
	<list>
		<person><name>foo2</name></person>
		<person><name>bar2</name></person>
		<list>
			<person><name>bar3</name></person>
		</list>
	</list>
	<person><name>zap</name></person>
	<list></list>
</list>	


Digester
========
<digester-rules>
	<pattern value="*/list">
		<object-create-rule classname="java.util.ArrayList"/>
		<pattern value="person">
			<object-create-rule classname="TestDig"/>
			<set-next-rule methodname="add"/>
		</pattern>
	</pattern>	
</digester-rules>

Already followed the chain below and tried the suggestion but does not
seem to work for me.
http://www.mail-archive.com/struts-user@jakarta.apache.org/msg54338.html

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Re: Digester1.8 and recursive tag types

Posted by simon <si...@chello.at>.
On Thu, 2007-08-09 at 17:51 -0400, Madisetti, Sumesh wrote:
> Hi,
> 
> I am having trouble parsing recursive tags with digester version 1.8.
> 
> With the digester def below, I am not able to get to any of the inner
> list elements such as person.name=bar3. 
> 
> Any help appreciated.
> 
> Thanks
> Sumesh
> 
> Xml -
> =====
> <list>
> 	<person><name>foo</name></person>
> 	<person><name>bar</name></person>
> 	<list>
> 		<person><name>foo2</name></person>
> 		<person><name>bar2</name></person>
> 		<list>
> 			<person><name>bar3</name></person>
> 		</list>
> 	</list>
> 	<person><name>zap</name></person>
> 	<list></list>
> </list>	
> 
> 
> Digester
> ========
> <digester-rules>
> 	<pattern value="*/list">
> 		<object-create-rule classname="java.util.ArrayList"/>
> 		<pattern value="person">
> 			<object-create-rule classname="TestDig"/>
> 			<set-next-rule methodname="add"/>
> 		</pattern>
> 	</pattern>	
> </digester-rules>

That looks ok to me (though presumably you also have a rule to set the
name attribute for a person which you haven't shown).

I suggest turning on debug-level logging for category
org.apache.commons.digester, which will show what rules are firing and
when.

By "cannot get to person.name=bar3", I presume you mean that no
corresponding java object has been created during the parse. What
objects *do* get created?

Regards,

Simon


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org