commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Patrick Diviacco <patrick.divia...@gmail.com>
Subject Re: [digester] how can I print children tags instead of only tag content ?
Date Sat, 14 May 2011 20:51:17 GMT
ps. the children names are completely different, there is no way to use a
regex to discriminate between them.



On 14 May 2011 22:50, Patrick Diviacco <patrick.diviacco@gmail.com> wrote:

> hi Simone,
>
> ok, it was just matter of adding one line :)
>
> By the way I still have an issue in the case of multiple children and I
> don't know how to solve it. If I have a document containing:
>
> <parent>
> <child1></child1>
> <child2></child2>
> </parent>
>
> I don't want to  trigger the method twice, but just once... in other terms
> I want to trigger the method only once per document and only if the <parent>
> tag has at least 1 child.
>
> I copy my code again:
>
> Digester digester = new Digester();
> digester.setRules( new RegexRules( new SimpleRegexMatcher() ) );
>
> digester.addCallMethod("collection/doc/categ/*",  "myMethod", 0);
>
> thanks
> Patrick
>
>
>
>
> On 14 May 2011 21:54, Simone Tripodi <simonetripodi@apache.org> wrote:
>
>> Hi Patrick,
>> I thought it was more intuitive, sounds we have to update de doc.
>> Anyway, to reply to your questions:
>>
>> 1) just create the Digester instance, set the RegexRules and start
>> binding your rules:
>>
>> Digester digester = new Digester();
>> digester.setRules( new RegexRules( new SimpleRegexMatcher() ) );
>> digester.addCallMethod( "collection/doc/categ/*",  "myMethod", 0 );
>>
>> 2) yes, as reported in the javadoc I pointed: "* matches any sequence
>> of none, one or more characters" like in the bash syntax; if you want
>> to apply kind of filters, bind the rules with restrictive patterns
>> (prefixes/postfixes); ie. given the rule:
>>
>> digester.addCallMethod( "collection/doc/categ/patt*",  "myMethod", 0 );
>>
>> collection/doc/categ/patt -> matches
>> collection/doc/categ/pattern -> matches
>> collection/doc/categ/patteRn -> matches
>> collection/doc/categ/pattern -> matches
>> collection/doc/categ/paBtern -> does not match
>>
>> HTH, have a nice weekend,
>> Simo
>>
>> http://people.apache.org/~simonetripodi/
>> http://www.99soft.org/
>>
>>
>>
>> On Sat, May 14, 2011 at 8:58 PM, Patrick Diviacco
>> <patrick.diviacco@gmail.com> wrote:
>> > Thanks,
>> >
>> > 1) Is there any tutorial explaining how to use it ?
>> >
>> > 2) In my case, if I have more than one child, is the pattern detected
>> > multiple times ?
>> >
>> > help is very appreciated!
>> >
>> >
>> >
>> >
>> > On 14 May 2011 01:36, Simone Tripodi <simonetripodi@apache.org> wrote:
>> >
>> >> Hi Patrick,
>> >> follow the Konstantin's suggestion, that's the way to achieve it. Have
>> >> a read also to
>> >>
>> http://commons.apache.org/digester/apidocs/index.html?org/apache/commons/digester/SimpleRegexMatcher.html
>> >>
>> >> HTH,
>> >> Simo
>> >>
>> >> http://people.apache.org/~simonetripodi/
>> >> http://www.99soft.org/
>> >>
>> >>
>> >>
>> >> On Fri, May 13, 2011 at 8:28 PM, Konstantin Kolinko
>> >> <knst.kolinko@gmail.com> wrote:
>> >> > 2011/5/13 Patrick Diviacco <patrick.diviacco@gmail.com>:
>> >> >> mhm, sorry.. just to be more clear.
>> >> >>
>> >> >> Is there a way in Commons Digester to trigger a method only if
a xml
>> >> element
>> >> >> has a child ?
>> >> >>
>> >> >> i.e.
>> >> >> digester.addCallMethod("collection/doc/categ/*",  "myMethod", 0);
>> >> >>
>> >> >> This doesn't work.
>> >> >
>> >> > The "*" is allowed in the prefix only, as documented in
>> >> >
>> >> >
>> >>
>> http://commons.apache.org/digester/commons-digester-2.1/docs/api/org/apache/commons/digester/RulesBase.html
>> >> >
>> >> > You may try to use a different rules matcher. See "RegexMatchers"
>> chapter
>> >> here:
>> >> > http://commons.apache.org/digester/commons-digester-2.1/core.html
>> >> >
>> >> >
>> >> >> But it is actually what I need. If element <categ> has at
>> >> >> least a child, then trigger myMethod
>> >> >
>> >> > Best regards,
>> >> > Konstantin Kolinko
>> >> >
>> >> > ---------------------------------------------------------------------
>> >> > To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
>> >> > For additional commands, e-mail: user-help@commons.apache.org
>> >> >
>> >> >
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
>> >> For additional commands, e-mail: user-help@commons.apache.org
>> >>
>> >>
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
>> For additional commands, e-mail: user-help@commons.apache.org
>>
>>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message