Re: Formatting output

Jason Hunter <[email protected]>
Newsgroups gmane.comp.java.jdom.general
Message-ID <[email protected]>
Whitespace outside the root element is inconsequential in the XML data 
model.  So this wouldn't matter except you're using a script that isn't 
really XML aware, and that's why it hasn't been added as a feature.

Two ideas that jump to mind:

* Subclass XMLOutputter

* Output the document in two parts and add a newline yourself in between 
the two parts

-jh-

Nico Van Cleemput wrote:
> Hi,
> 
> I have a question about formatting the output of an Document to a XML-file.
> 
> We have a set of xml-files that can be edited by the user and which 
> contain a HTML-ish section, although it is still XML. (In a later phase 
> these files are partially transformed to HTML, but that isn't so 
> important for my question.) A slimmed down version of such a file may 
> look like this:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <!--
> 
> closure.xml
> 
> header
> 
> -->
> <help>
>   <page title="Closure" rootpath="../../../">
>     <h1>Closure</h1>
>     <p>
>       The <b>closure</b> of a graph is the graph you get by adding an 
> edge between two
>       vertices if the sum of their degrees is greater than or equal to 
> the order of the graph
>       and doing this until no new edges can be added.
>     </p>
>     <graph 
> name="classpath:/org/grinvin/help/graphbundles/closuredemo1.gph" />
>     <graph 
> name="classpath:/org/grinvin/help/graphbundles/closuredemo2.gph" />
>     <p>A graph (left) and its closure (right).</p>
>   </page>
> </help>
> 
> Everything under the help node is parsed from the input from the user 
> and the Document is then build as follows:
>             Document doc = new Document();
>             doc.addContent(new Comment(license));
>             doc.setRootElement(root);
> 
> The variable license contains our header information and the variabe 
> root contains the help node.
> 
> Next we use XMLOutputter to write this to a file. However here lies the 
> problem. If we use pretty format we get this:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <!--
> 
> closure.xml
> 
> header
> 
> -->
> <help>
>   <page title="Closure" rootpath="../../../">
>     <h1>Closure</h1>
>     <p>
>       The
>       <b>closure</b>
>       of a graph is the graph you get by adding an edge between two
>       vertices if the sum of their degrees is greater than or equal to 
> the order of the graph
>       and doing this until no new edges can be added.
>     </p>
>     <graph 
> name="classpath:/org/grinvin/help/graphbundles/closuredemo1.gph" />
>     <graph 
> name="classpath:/org/grinvin/help/graphbundles/closuredemo2.gph" />
>     <p>A graph (left) and its closure (right).</p>
>   </page>
> </help>
> 
> Notice how a new line is started for each tag (which is normally when 
> using pretty format of course). This makes it quite impossible to 
> fluently read and edit the content of the page-node. Especially if it 
> contains many markup tags.
> 
> This was why we decided to use raw format since that will keep the 
> layout the way it receives it. However, this gives the output:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <!--
> 
> closure.xml
> 
> header
> 
> --><help>
>   <page title="Closure" rootpath="../../../">
>     <h1>Closure</h1>
>     <p>
>       The <b>closure</b> of a graph is the graph you get by adding an 
> edge between two
>       vertices if the sum of their degrees is greater than or equal to 
> the order of the graph
>       and doing this until no new edges can be added.
>     </p>
>     <graph 
> name="classpath:/org/grinvin/help/graphbundles/closuredemo1.gph" />
>     <graph 
> name="classpath:/org/grinvin/help/graphbundles/closuredemo2.gph" />
>     <p>A graph (left) and its closure (right).</p>
>   </page>
> </help>
> 
> And here is where my question comes in: I'm unable to let him start a 
> new line for the help tag. How can this be achieved? The reason I want 
> to have this on a new line is that we sometimes run a script when all 
> the headers of old files need to be changed and this script replaces 
> complete lines.
> 
> I hope I have explained the situation enough and any help is welcome.
> 
> Thanks in advance,
> Nico Van Cleemput
> _______________________________________________
> To control your jdom-interest membership:
> http://www.jdom.org/mailman/options/jdom-interest/[email protected]
> 
_______________________________________________
To control your jdom-interest membership:
http://www.jdom.org/mailman/options/jdom-interest/[email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.