![]() |
The Java Developers Almanac 1.4Order this book from Amazon. |
e519. Emitting a DOCTYPE Declaration When Writing an XML File from a DOM DocumentBy default, the DOCTYPE is not written when using a transformer to dump a DOM document to an XML file. This example demonstrates how to write a DOCTYPE with a public and system id. Unfortunately, it is not possible to write a DOCTYPE with an internal DTD.// Create a document; this method is implemented in // e510 The Quintessential Program to Create a DOM Document from an XML File Document doc = parseXmlFile("infilename.xml", false); try { // Create a transformer Transformer xformer = TransformerFactory.newInstance().newTransformer(); // Set the public and system id xformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, "publicId"); xformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "systemId"); // Write the DOM document to a file Source source = new DOMSource(doc); Result result = new StreamResult(new File("outfilename.xml")); xformer.transform(source, result); } catch (TransformerConfigurationException e) { } catch (TransformerException e) { }This is the sample input for the example: <?xml version="1.0" encoding="UTF-8"?> <map> <entry key="key1" value="value1" /> <entry key="key2" /> </map>The resulting XML from running the example is: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE map PUBLIC "publicId" "systemId"> <map> <entry key="key1" value="value1"/> <entry key="key2"/> </map>
e520. Writing Only the Text of a DOM Document © 2002 Addison-Wesley. |