Hello Michael,

 

Thanks for the response.  After more investigation, I found that the
desired text was indeed being stored with the DOM Text element, but that
the serializer was truncating its value.  After quite a bit of searching
on the web, I found that setting the 'xml:space=preserve' attribute on
the parent node resulted in the output being generated in the
pretty-print format desired but that spaces are preserved during this
writer output operation.

 

For those others who may be having a similar issue and are interested,
here is the xml that allowed the serializer to correctly preserve the
spaces:

 

<test>

    <first>abc</first>

    <second xml:space="preserve"> </second>

    <third>def</third>

</test>

 

Without the 'xml:space=preserve' attribute, the following serialized XML
is generated from the serializer:

 

<test>

    <first>abc</first>

    <second />

    <third>def</third>

</test>

 

I found the serializer could be told to preserve spaces, but then the
output was not generated in pretty-print format, which was desired.

 

Perhaps it is common knowledge about the xml:space attribute, but not to
me and was really the answer I was looking for because I didn't want to
alter the actual text data to contain a non-whitespace character to
accommodate the serializer which would have repercussions because on the
flip-side the parser then would need to be modified to perform the
necessary stripping of the content data.

 

Regards,

Nicholas

 

 

From: Michael Glavassevich [mailto:mrgla...@ca.ibm.com] 
Sent: Monday, December 14, 2009 8:59 PM
To: j-users@xerces.apache.org
Subject: Re: whitespace management with DOM element

 

Hi Nicholas,

I'm not sure I follow the issue you're having. Can you give a concrete
example?

Thanks.

Michael Glavassevich
XML Parser Development
IBM Toronto Lab
E-mail: mrgla...@ca.ibm.com
E-mail: mrgla...@apache.org

<thayer_nicho...@emc.com> wrote on 12/14/2009 01:02:22 PM:

> Hello,
>  
> I have an element that usually contains alpha characters, but 
> depending upon the user input can contain a single space.  I'm using
> the DocumentBuilderFactory to create an instance of DocumentBuilder,
> and then generating DOM elements from that and serializing the 
> output to a file.
>  
> I'm seeing the resulting serialized file is simply an empty XML 
> element.  Is it possible to configure the DOM builder to preserve 
> the spaces if they exist, or does this go against the XML spec?  If 
> so, can you help me understand how to make that happen?
>  
> Thanks,
> Nicholas

Reply via email to