[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: use SAX to get "tree" under XML node


sax node
Will Johnson wrote:

> for example in the following xml file...
> 
> <fields>
>     <field1>value 1</field1>
>     <field2><style value="red"/><values>value 2</values></field2>
> </fields>
> 
> i want to be able to get the trigger on the element field2 and somehow
> get back the string
> 
> <style value="red"/><value1>value1</value1><value2>value
> 2</value2></values>
> 
> if i use a regular sax processor to get all the characters i end up
> getting only the text which in this case would be "value 1 value 2"

First, the contents of <field2> are:

   <style value="red"/><values>value 2</values>

but you say that you want to get the following string back:

   <style
value="red"/><value1>value1</value1><value2>value2</value2></values>

I'll assume either your sample document is wrong or what you want to get
back is wrong and what you're really saying is that you just want to get
the content of a given element -- in this case <field2> -- serialized as
XML.

This is easy to do. All you need is two globals:

   boolean processingField2
   StringBuffer field2Content

You set processingField2 to true in startElement when you hit <field2>
and to false in endElement when you hit </field2>. When processingField2
is true, you do the following:

a) in startElement, append the element tag to the StringBuffer. For
example:

   field2Content.append("<");
   field2Content.append(qname);
   field2Content.append(...); // append attributes
   field2Content.append(">");

b) in characters and ignorableWhitespace, append the character values.
c) in endElement, append the closing tag (similar to (a))

For more detailed code in answer to a similar question, see:

   http://lists.xml.org/archives/xml-dev/200111/msg00476.html

How to generalize this is left as an exercise to the reader :) You might
also be able to simplify things by using an XMLWriter class, such as
that available from www.megginson.com. (I haven't looked at that class,
so I'm not sure exactly how it works.)

-- Ron

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.