OK. Solved, thanks - grazie mille On 15 May 2011 11:28, Simone Tripodi <simonetrip...@apache.org> wrote:
> IIUC = if I understand correctly ;) > > A quick hint: why don't you manage the logic inside your business > logic? I mean, you configure the digester: > > Digester digester = new Digester(); > digester.setRules( new RegexRules( new SimpleRegexMatcher() ) ); > > digester.addCallMethod( "collection/doc/categ/*", "myMethod", 0 ); > > then check the 'myMethod' has already been invoked: > > boolean check = false; > > public void myMethod( String arg ) > { > if ( !check ) > { > System.out.println( arg ); > check = true; > } > } > > HTH, let me know your progress! > Simo > > http://people.apache.org/~simonetripodi/ > http://www.99soft.org/ > > > > On Sun, May 15, 2011 at 8:58 AM, Patrick Diviacco > <patrick.divia...@gmail.com> wrote: > > what does IIUC mean ? > > > > Yeah. I mean, more exactly, I just need to know if the element has at > least > > a child: > > > > bool = hasChild(myPattern) > > > > thanks > > > > On 15 May 2011 02:09, Simone Tripodi <simonetrip...@apache.org> wrote: > > > >> 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 > >> > >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@commons.apache.org > For additional commands, e-mail: user-h...@commons.apache.org > >