[jdom-interest] Formatting output
Nico Van Cleemput
nicolas.vancleemput at ugent.be
Fri Apr 6 06:39:27 PDT 2007
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
More information about the jdom-interest
mailing list