DOM DocumentImpl学习笔记
什么是DOM DocumentImpl?
DOM(Document Object Model)是一种表示和操作HTML或XML文档的标准接口。其中,DocumentImpl是DOM规范中定义的一个具体实现类,实现了Document接口。
在Java中,使用DocumentImpl可以方便地创建、操作和生成XML文档。
如何使用DOM DocumentImpl?
创建Document对象
要创建一个Document对象,可以通过DocumentBuilderFactory和DocumentBuilder来实现:
javaCopy CodeDocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.newDocument();
添加元素
可以使用createElement方法创建元素,并使用appendChild方法添加到Document对象上:
javaCopy CodeElement root = document.createElement("root");
document.appendChild(root);
Element element = document.createElement("element");
root.appendChild(element);
设置属性
可以使用setAttribute方法设置元素的属性:
javaCopy Codeelement.setAttribute("attr", "value");
添加文本
可以使用createTextNode方法创建文本节点,并使用appendChild方法添加到元素上:
javaCopy CodeText text = document.createTextNode("Some text");
element.appendChild(text);
保存为XML文件
可以使用Transformer将Document对象转换为XML格式的字符串,并保存为文件:
javaCopy CodeTransformer 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 CodeDocumentBuilderFactory 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的学习笔记和实例。