[jdom-interest] XMLOutputter changes from b8 to b9
Dave.Beleznay at webct.com
Fri Jan 16 10:46:04 PST 2004
Really? that is odd, it might be my copy of the jar file, I wasn't the
one who downloaded it, I'll try getting a new copy and trying again.
Are you sure that the spaces in the element <type> were preserved?
I've attatched my test class here, can you try running it when you get a
> -----Original Message-----
> From: Bradley S. Huffman [mailto:hip at cs.okstate.edu]
> Sent: Thursday, January 15, 2004 6:49 PM
> To: Beleznay, Dave
> Cc: jdom-interest at jdom.org
> Subject: Re: [jdom-interest] XMLOutputter changes from b8 to b9
> When I uncomment the following line in your code I get the
> results you want with B9.
> "Beleznay, Dave" writes:
> > Hi There,
> > We've recently upgraded from Jdom b8 to b9, and had a few errors in
> > the upgrade process.
> > If I have an XML document like so:
> > String xml =3D=20
> > "<enterprise>\n"+
> > "<properties>\n"+
> > " <datasource>WebCT</datasource>\n"+
> > " <type> Migration</type>\n"+
> > " <datetime>2002-06-06T14:59:05</datetime>\n"+
> > "</properties>\n"+
> > "</enterprise>\n";
> > Where the spaces in front of <datasource> are not relevant, but the
> > spaces inside the elements (e.g. <type>) are relevant (this
> is just a
> > fragment of a larger bit of XML, it isn't really the <type>
> field that
> > matters here). When I put the document into Jdom, I get different
> > behaviour between Jdom b8 and b9. I'd like to know the expected
> > behaviour, and if it doesn't match my desired behaviour,
> > how I'm supposed to fix my code. =20
> > Using the string above and the following code in Jdom b8 I get the
> > output below.
> > SAXBuilder builder =3D new SAXBuilder();
> > Document doc =3D builder.build(new StringReader(xml));
> > =20
> > XMLOutputter xmlOutputter =3D new XMLOutputter("\t", true);
> > xmlOutputter.setOmitDeclaration(true);
> > xmlOutputter.setLineSeparator("\n");
> > //xmlOutputter.setTextTrim(true);
> > String output =3D =
> > xmlOutputter.outputString(doc.getRootElement());
> > System.out.println(output);
> > Desired output ( and output received from b8):
> > output=3D
> > t<
> > type>
> > op
> > erties>\n</enterprise>"
> > When we upgraded to Jdom b9 we were in for a little bit of a
> > surprise.=20
> > Output from b9 without TextTrim:
> > output=3D "<enterprise>\n\t\n\n\t<properties>\n\t\t\n
> > \n\t\t<datasource>WebCT</datasource>\n\t\t\n \n\t\t<type>
> > Migration</type>\n\t\t\n
> > >\
> > n\t\n\n</enterprise>"
> > Output from b9 with TextTrim:
> > output=3D
> > t<
> > type>t<
> > /properties>\n</enterprise>"
> > (this is close, but took the spaces out before " Migration" )=20
> > Unfortunately the code farther down the line (not using
> jdom) which is
> > analyzing the xml has problems with the string "\n\t\t\n
> > \n\t\t<datasource>WebCT<datasource>" and interprets the value as "
> > WebCT". I'm not happy with that either, but right now it's
> easier to
> > fix the behaviour of Jdom.
> > It looks like this was changed XMLOutputter 1.87, and I'm trying to
> > figure out why. I'd like to remove the whitespace outside the
> > elements, while preserving the whitespace inside. As a temporary
> > measure I've added the check for currentFormat.newlines back to our
> > skipLeadingWhite method in XMLOutputter, but I'd like a
> more permanent
> > solution. =20
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 2355 bytes
Url : http://jdom.org/pipermail/jdom-interest/attachments/20040116/fd1dd882/TestXMLOutputter.obj
More information about the jdom-interest