使用DOM生成带换行的XML文档示例

需积分: 47 19 下载量 59 浏览量 更新于2024-10-23 收藏 30KB DOC 举报
"该资源提供了一个使用Java DOM API创建包含换行的XML文档的实例。" 在编程领域,XML(可扩展标记语言)是一种用于存储和传输数据的标准格式,尤其适用于结构化数据。W3C(万维网联盟)是制定XML规范的组织,确保XML的跨平台兼容性和标准化。在Java中,处理XML文档的一种常见方法是使用DOM(文档对象模型)API,它允许程序创建、修改和解析XML文档。 以下是基于给定的Java代码片段的详细解释: 首先,导入所需的库,包括`java.io`、`javax.xml.parsers`和`javax.xml.transform`包,这些包提供了处理XML所需的各种类和接口。 ```java import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.w3c.dom.Element; ``` 接着,定义一个名为`XMLHandler`的类,并在这个类中创建一个方法`createXML`,用于生成XML文档。 ```java public class XMLHandler { public void createXML() throws FileNotFoundException { // ... } } ``` 在`createXML`方法中,首先创建一个`DocumentBuilderFactory`的实例,然后通过`newDocumentBuilder()`方法获取一个`DocumentBuilder`实例,这将用于构建XML文档。 ```java DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = dbf.newDocumentBuilder(); Document doc = docBuilder.newDocument(); ``` 接下来,创建XML文档的根元素,这里名为"root"。 ```java Element root = doc.createElement("root"); doc.appendChild(root); ``` 然后,添加一个子元素"contry"到根元素中,并为其赋值为"China"。 ```java Element country = doc.createElement("contry"); country.appendChild(doc.createTextNode("China")); root.appendChild(country); ``` 至此,XML文档的基本结构已经建立,即`<root><contry>China</contry></root>`。然而,为了保存这个XML文档到文件系统,我们需要使用`Transformer`类。首先,创建`TransformerFactory`的实例,然后使用它来获取`Transformer`。 ```java TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); ``` 设置输出格式,例如添加换行符和缩进,使XML更易读。 ```java transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2"); ``` 最后,创建一个`DOMSource`对象,将创建的`Document`对象传递给它,以及一个`StreamResult`对象,指定输出文件的位置,然后调用`transform()`方法将XML文档写入文件。 ```java DOMSource source = new DOMSource(doc); FileOutputStream outputStream = new FileOutputStream(new File("output.xml")); StreamResult result = new StreamResult(outputStream); transformer.transform(source, result); ``` 以上代码会生成一个名为"output.xml"的文件,其中包含了创建的XML文档。这个例子展示了如何使用Java DOM API生成XML文档,并通过W3C标准的API进行格式化,使其具有清晰的换行和缩进。