[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [xml-dev] use SAX to get "tree" under XML node
> 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))
This procedure will produce a broken XML,
because SAX turns > & < " and '
things into > & < " ' symbols, so the accurate
processing should turn the symbols back to
entities.
& should become & < should be come >
e t,.c This usually takes place in endElement
> For more detailed code in answer to a similar question, see:
>
> http://lists.xml.org/archives/xml-dev/200111/msg00476.html
The 'detailed' code has the same problem.
> 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.)
I think it does the encoding described above, for example.
I'd say that "how can you read XML document and write it
back unchanged" is a nice question for "XML certification"
Tee-hee. The correct answer is
"It is impossible, but in the case you are asking about keeping the
infoset,
there are several problems, such as ... "
XML is 'simple' ? Most of the 'XML producing' code on the
planet is broken when first released ...
Rgds.Paul.