On Thu, 2003-04-24 at 12:39, Sanjay Gupta (sanjaygu) wrote:
> Hi,
> I have a Xml dom node and I want to print it to a file. I want all the
> node types to printed like element, doctype and comment nodes.
> Does anyone has a idea how to print it. Is there a convenient API?
>
> -Sanjay
You can use the following classes:
org.apache.xml.serialize.XMLSerializer;
org.apache.xml.serialize.DOMSerializer;
Here is an extract of some code I use to perform this task:
OutputFormat outputFormat = new OutputFormat();
outputFormat.setMethod(Method.XML);
outputFormat.setIndenting(true);
outputFormat.setIndent(4);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
XMLSerializer xmlSerializer = new XMLSerializer(
baos, outputFormat);
DOMSerializer domSerializer = xmlSerializer.asDOMSerializer();
domSerializer.serialize(doc);
byte[] data = baos.toByteArray();
You can then write the byte array to a file.
I specifically wanted a byte array for other reasons; because you only
want to write to a file, you might be able to pass a FileOutputStream to
the XMLSerializer or similar.
Regards,
Simon