commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Craig R. McClanahan" <craig...@apache.org>
Subject Re: [Digester] Re: Unknown nodes in digester?
Date Tue, 11 Mar 2003 23:37:27 GMT


On Tue, 11 Mar 2003, Schnitzer, Jason D (US SSA) wrote:

> Date: Tue, 11 Mar 2003 15:18:35 -0800
> From: "Schnitzer, Jason D (US SSA)" <jason.schnitzer@baesystems.com>
> Reply-To: Jakarta Commons Users List <commons-user@jakarta.apache.org>
> To: commons-user@jakarta.apache.org
> Subject: [Digester] Re: Unknown nodes in digester?
>
> Hello,
>
> Thanks for all the work creating Digester it works great!
>

Glad to hear it!

> However, I have a similar problem to an earlier poster. I need to
> preserve the data. So to continue on with a previous example I found in
> the archive.
>
> <ROOT>
>  <USERDEFINED>
>   <UNKNOWN1></UNKNOWN1>
>  </USERDEFINED>
> </ROOT>
>
> I would like a way to store the <unknown1></unknown1> in a string inside
> of my class... So if I did
>
> someClass.getUserDefined()
>
> It would return a string
>
> "<unknown1></unknown1>"
>
> So I would like the rule:
>
>   <call-method-rule pattern="USERDEFINED" methodname="setUserDefined"
> paramcount="0"/>
>
> To match all the way to the end tag of USERDEFINED with all the data
> inside of it. If there are no matching child patterns to intercept it.
>
> Is there a way to accomplish this?
>

Digester's standard pattern matching is really oriented towards pulling
out what you *do* know, rather than what you don't :-).  With the standard
rules, you could absorb non-element body content inside your user-defined
element, but not nested XML elements.  You might try playing with the
ExtendedBaseRules class (configure it on your Digester by calling
setRules()) and playing with the "*" and "!*" matching patterns to see if
you can get what you want.

> Thanks,
> Jason

Craig


>
> -----Original Message-----
> From: Craig R. McClanahan [mailto:craigmcc@apache.org]
> Sent: Wednesday, January 22, 2003 1:34 AM
> To: Jakarta Commons Users List
> Subject: Re: Unknown nodes in digester?
>
>
>
>
> On Wed, 22 Jan 2003, Bill Chmura wrote:
>
> > Date: Wed, 22 Jan 2003 00:43:20 -0500
> > From: Bill Chmura <Bill@Explosivo.com>
> > Reply-To: Jakarta Commons Users List <commons-user@jakarta.apache.org>
> > To: 'jakarta Commons Users List' <commons-user@jakarta.apache.org>
> > Subject: Unknown nodes in digester?
> >
> >
> > Hello,
> >
> > I am not sure what tool to use for what I need... I've used the DOM
> > before, JAXB but I hear digester is pretty good.  I've done some
> > reading, but was hoping someone could give me some advice.
> >
> > I need to read a number of small XML documents.  The kicker is that
> > internally I will know ahead of time what 70% of the tags are, but
> > there is the possibility for unknown tags to be within a known tag.
> > Can digester be configured to handle this?
> >
>
> In general, Digester works on a matching principle -- it assumes you
> know the element nesting pattern you are looking for.  So, whether it's
> useful to you or not for your task is how far ahead of time you know
> what the element names will be -- if you have some sort of information
> that says "an UNKNOWN1 will be nested inside a USERDEFINED inside a
> ROOT", then you can dynamically construct the matching patterns for your
> processing rules.
>
> It's really impossible, though, to give you much more help without
> understanding what you actually want to *do* with the data that is
> parsed. For example, if you want random access to the nodes, you
> probably want to use some sort of DOM-based solution -- anything that is
> SAX based (including Digester) is not going to be very helpful.
>
> > Something like:
> >
> >
> > <ROOT>
> > <USERDEFINED>
> > <UNKNOWN1></UNKNOWN1> -> ?
> > <UNKNOWN2></UNKNOWN2> -> ?
> > </USERDEFINED>
> > </ROOT>
> >
> >
> > Thanks!
> >
> > Bill
> >
>
> Craig
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-user-help@jakarta.apache.org
>
>

Mime
View raw message