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]