Java DOM 解析 XML 文档:完整指南和示例
在 Java 中,可以使用 DOM、SAX、JDOM 等技术来解析 XML 内容。下面以 DOM 方式解析 XML 为例进行说明。
- 导入相关包
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
- 读取 XML 文件
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new File('example.xml'));
- 获取根节点
Element root = document.getDocumentElement();
- 获取子节点
NodeList nodeList = root.getChildNodes();
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) node;
// 处理子节点
}
}
- 获取节点属性
String attributeValue = element.getAttribute('attributeName');
- 获取节点值
String textValue = element.getTextContent();
完整代码示例:
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;
public class XMLParser {
public static void main(String[] args) throws Exception {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new File('example.xml'));
Element root = document.getDocumentElement();
NodeList nodeList = root.getChildNodes();
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) node;
String attributeValue = element.getAttribute('attributeName');
String textValue = element.getTextContent();
System.out.println('attributeValue: ' + attributeValue + ', textValue: ' + textValue);
}
}
}
}
原文地址: https://www.cveoy.top/t/topic/nnlT 著作权归作者所有。请勿转载和采集!