Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   XML (http://www.velocityreviews.com/forums/f32-xml.html)
-   -   xerces serializing < (http://www.velocityreviews.com/forums/t170125-xerces-serializing.html)

Malcolm Dew-Jones 11-02-2005 08:43 PM

Re: xerces serializing <
 
shaun roe (shaun.roe@wanadoo.fr) wrote:
: a follow up with new problems from my previous post:

: I have xml encoded in a string with elements like <myElement/>

: e.g

: <codeFragment> &lt;myElement&gt;some text&lt;/myElement&gt;
: </codeFragment>

: I parse this in Xerces and I can see it has done the correct thing,
: but now I want to serialize the output so it **looks** like valid xml,
: i.e.
: <codeFragment> <myElement>someText</myElement> </codeFragment>

: this doesnt happen; instead I get

: <codeFragment> &lt;myElement>someText &lt/myElement> </codeFragment>

: I dont want to change the DOM model, I just want the serializer to
: output text which has the "<" in it. Is there some way of stopping it
: escaping the "<" ?

: note: unfortunately I am restricted to simple text in the node, I cannot
: insert a CDATA. (not sure this would solve it anyway).


Is there some option to _not_ escape the text? I know that using xalan
you can use an option (it's part of xlst) to not escape text. Since xalan
is based on xerces, I wonder if it is xerces that has an option to do
this?

OR

Take your text after it is un-escaped and parse that a second time. Now
take that small node tree and splice it into the original in place of the
text that contained the escaped < & >'s. When the whole is serialized
then that part of the xml will be output with tags as you wish. ($0.10)

--

This programmer available for rent.

shaun roe 11-02-2005 09:19 PM

xerces serializing &lt;
 
a follow up with new problems from my previous post:

I have xml encoded in a string with elements like &lt;myElement/&gt;

e.g

<codeFragment> &lt;myElement&gt;some text&lt;/myElement&gt;
</codeFragment>

I parse this in Xerces and I can see it has done the correct thing,
but now I want to serialize the output so it **looks** like valid xml,
i.e.
<codeFragment> <myElement>someText</myElement> </codeFragment>

this doesnt happen; instead I get

<codeFragment> &lt;myElement>someText &lt/myElement> </codeFragment>

I dont want to change the DOM model, I just want the serializer to
output text which has the "<" in it. Is there some way of stopping it
escaping the "<" ?

note: unfortunately I am restricted to simple text in the node, I cannot
insert a CDATA. (not sure this would solve it anyway).


cheers

shaun

Martin Honnen 11-03-2005 11:55 AM

Re: xerces serializing &lt;
 


shaun roe wrote:

> I have xml encoded in a string with elements like &lt;myElement/&gt;
>
> e.g
>
> <codeFragment> &lt;myElement&gt;some text&lt;/myElement&gt;
> </codeFragment>
>
> I parse this in Xerces and I can see it has done the correct thing,
> but now I want to serialize the output so it **looks** like valid xml,
> i.e.
> <codeFragment> <myElement>someText</myElement> </codeFragment>


You can only talk about "valid" XML if you have a DTD or schema.
As for those snippets, both are "well-formed" XML, obviously the first
one is one elements with some text as a child node while the second is
an element with text and an element as child nodes.


> this doesnt happen; instead I get
>
> <codeFragment> &lt;myElement>someText &lt/myElement> </codeFragment>


Text has to be serialized with '<' escaped as &lt;, otherwise it is not
a proper serialization.

> I dont want to change the DOM model, I just want the serializer to
> output text which has the "<" in it. Is there some way of stopping it
> escaping the "<" ?


If you first choose to escape some XML markup as text in an XML document
you can't complain that the XML tools then treat that as text. Of course
with the DOM you can read out the text contents of an element and then
feed that to a new DOM parser to parse it as XML.
Or you would need to write your own serializer traversing a DOM tree and
not escaping text contents or perhaps not escaping text contents in
certain elements.

--

Martin Honnen
http://JavaScript.FAQTs.com/

Peter Flynn 11-06-2005 11:16 PM

Re: xerces serializing &lt;
 
shaun roe wrote:

> a follow up with new problems from my previous post:
>
> I have xml encoded in a string with elements like &lt;myElement/&gt;
>
> e.g
>
> <codeFragment> &lt;myElement&gt;some text&lt;/myElement&gt;
> </codeFragment>


That isn't XML. It's text that happens to have character entities in it.

> I parse this in Xerces and I can see it has done the correct thing,
> but now I want to serialize the output so it **looks** like valid xml,
> i.e.
> <codeFragment> <myElement>someText</myElement> </codeFragment>
>
> this doesnt happen; instead I get
>
> <codeFragment> &lt;myElement>someText &lt/myElement> </codeFragment>
>
> I dont want to change the DOM model, I just want the serializer to
> output text which has the "<" in it. Is there some way of stopping it
> escaping the "<" ?
>
> note: unfortunately I am restricted to simple text in the node, I
> cannot insert a CDATA. (not sure this would solve it anyway).


See the FAQ: http://xml.silmaril.ie/authors/html/

///Peter



All times are GMT. The time now is 03:22 AM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.