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 >> >> >