From: laredotornado on
Hi,

I'm using Java 1.5, dom4j 1.6, axis 1.4, cglib 2.1_3, and commons-
beanutils 1.7.0. I'm trying to figure out why converting an XML
document to a string is not working. I'm trying to build a very
simple XML doc like so ...

private Document createXMLDocument(String firstName, String
lastName, String number, String year, String month,
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.newDocument();

Element documentRoot = document.createElement("response");
document.appendChild(documentRoot);
Element documentElement = document.createElement("firstname");
documentElement.setTextContent(firstName);
documentRoot.appendChild(documentElement);
documentElement = document.createElement("lastname");
documentElement.setTextContent(lastName);
documentRoot.appendChild(documentElement);
documentElement = document.createElement("num");
documentElement.setTextContent(number);
documentRoot.appendChild(documentElement);
documentElement = document.createElement("type");
documentElement.setTextContent(type);
documentRoot.appendChild(documentElement);
documentElement = document.createElement("year");
documentElement.setTextContent(year);
documentRoot.appendChild(documentElement);
documentElement = document.createElement("month");
documentElement.setTextContent(month);
documentRoot.appendChild(documentElement);
return document;
}

but trying to get the doc as a string produces a partial document
(e.g. "<?xml version="1.0" encoding="UTF-8"?
><response><firstname>DAVE")

private String getXMLString(Document document) throws Exception {
StringWriter swriter = new StringWriter();
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(swriter);
transformer.transform(source, result);
swriter.close();
return swriter.toString();
}

Any ideas why or how to troubleshoot further? Thanks, - Dave
From: Jeff Higgins on
laredotornado wrote:
> Hi,
>
> I'm using Java 1.5, dom4j 1.6, axis 1.4, cglib 2.1_3, and commons-
> beanutils 1.7.0. I'm trying to figure out why converting an XML
> document to a string is not working. I'm trying to build a very
> simple XML doc like so ...
>
> private Document createXMLDocument(String firstName, String
> lastName, String number, String year, String month,
> DocumentBuilderFactory factory =
> DocumentBuilderFactory.newInstance();
> DocumentBuilder builder = factory.newDocumentBuilder();
> Document document = builder.newDocument();
>

This doesn't look like it should compile without errors and/or warnings.


> Element documentRoot = document.createElement("response");
> document.appendChild(documentRoot);
> Element documentElement = document.createElement("firstname");
> documentElement.setTextContent(firstName);
> documentRoot.appendChild(documentElement);
> documentElement = document.createElement("lastname");
> documentElement.setTextContent(lastName);
> documentRoot.appendChild(documentElement);
> documentElement = document.createElement("num");
> documentElement.setTextContent(number);
> documentRoot.appendChild(documentElement);
> documentElement = document.createElement("type");
> documentElement.setTextContent(type);

Where is type defined?

> documentRoot.appendChild(documentElement);
> documentElement = document.createElement("year");
> documentElement.setTextContent(year);
> documentRoot.appendChild(documentElement);
> documentElement = document.createElement("month");
> documentElement.setTextContent(month);
> documentRoot.appendChild(documentElement);
> return document;
> }
>
> but trying to get the doc as a string produces a partial document
> (e.g. "<?xml version="1.0" encoding="UTF-8"?
>> <response><firstname>DAVE")
>
> private String getXMLString(Document document) throws Exception {
> StringWriter swriter = new StringWriter();
> TransformerFactory tFactory = TransformerFactory.newInstance();
> Transformer transformer = tFactory.newTransformer();
> DOMSource source = new DOMSource(document);
> StreamResult result = new StreamResult(swriter);
> transformer.transform(source, result);
> swriter.close();
> return swriter.toString();
> }
>
> Any ideas why or how to troubleshoot further? Thanks, - Dave
From: Mike Schilling on
laredotornado wrote:

> but trying to get the doc as a string produces a partial document
> (e.g. "<?xml version="1.0" encoding="UTF-8"?
>> <response><firstname>DAVE")

No idea what your problem is. Having corrected the typos and run it, I see

<?xml version="1.0"
encoding="UTF-8"?><response><firstname>a</firstname><lastname>b</lastname><num>c</num><type>f</type><year>d</year><month>e</month></response>