IIUC, no matters which kind of children your node has, you're interested only on the first child, right?
http://people.apache.org/~simonetripodi/ http://www.99soft.org/ On Sat, May 14, 2011 at 10:51 PM, Patrick Diviacco <patrick.divia...@gmail.com> wrote: > 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.divia...@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 <simonetrip...@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.divia...@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 <simonetrip...@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.koli...@gmail.com> wrote: >>> >> > 2011/5/13 Patrick Diviacco <patrick.divia...@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-unsubscr...@commons.apache.org >>> >> > For additional commands, e-mail: user-h...@commons.apache.org >>> >> > >>> >> > >>> >> >>> >> --------------------------------------------------------------------- >>> >> To unsubscribe, e-mail: user-unsubscr...@commons.apache.org >>> >> For additional commands, e-mail: user-h...@commons.apache.org >>> >> >>> >> >>> > >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: user-unsubscr...@commons.apache.org >>> For additional commands, e-mail: user-h...@commons.apache.org >>> >>> >> > --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@commons.apache.org For additional commands, e-mail: user-h...@commons.apache.org