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)" <[EMAIL PROTECTED]> > Reply-To: Jakarta Commons Users List <[EMAIL PROTECTED]> > To: [EMAIL PROTECTED] > 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:[EMAIL PROTECTED] > 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 <[EMAIL PROTECTED]> > > Reply-To: Jakarta Commons Users List <[EMAIL PROTECTED]> > > To: 'jakarta Commons Users List' <[EMAIL PROTECTED]> > > 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: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
