DOM DocumentImpl学习笔记

什么是DOM DocumentImpl?

DOM(Document Object Model)是一种表示和操作HTML或XML文档的标准接口。其中,DocumentImpl是DOM规范中定义的一个具体实现类,实现了Document接口。

在Java中,使用DocumentImpl可以方便地创建、操作和生成XML文档。

如何使用DOM DocumentImpl?

创建Document对象

要创建一个Document对象,可以通过DocumentBuilderFactory和DocumentBuilder来实现:

javaCopy Code
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.newDocument();

添加元素

可以使用createElement方法创建元素,并使用appendChild方法添加到Document对象上:

javaCopy Code
Element root = document.createElement("root"); document.appendChild(root); Element element = document.createElement("element"); root.appendChild(element);

设置属性

可以使用setAttribute方法设置元素的属性:

javaCopy Code
element.setAttribute("attr", "value");

添加文本

可以使用createTextNode方法创建文本节点,并使用appendChild方法添加到元素上:

javaCopy Code
Text text = document.createTextNode("Some text"); element.appendChild(text);

保存为XML文件

可以使用Transformer将Document对象转换为XML格式的字符串,并保存为文件:

javaCopy Code
Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); transformer.transform(new DOMSource(document), new StreamResult(new File("test.xml")));

实例

以下是一个简单的示例,创建一个名为"student"的元素,并添加两个名为"name"和"age"的子元素,最后以XML格式保存到文件中:

javaCopy Code
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.newDocument(); Element student = document.createElement("student"); document.appendChild(student); Element name = document.createElement("name"); Text nameText = document.createTextNode("张三"); name.appendChild(nameText); student.appendChild(name); Element age = document.createElement("age"); Text ageText = document.createTextNode("18"); age.appendChild(ageText); student.appendChild(age); Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); transformer.transform(new DOMSource(document), new StreamResult(new File("student.xml")));

生成的XML文件内容如下:

xmlCopy Code
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <student> <name>张三</name> <age>18</age> </student>

以上就是关于DOM DocumentImpl的学习笔记和实例。