Java DOM 解析 XML 字符串17


Java 中的 Document Object Model (DOM) 是一个用于表示和操作 XML 文档的对象模型。本文将指导您如何使用 Java DOM 解析 XML 字符串。

1. 创建 DOM Parser

首先,您需要创建 DOM Parser。Java 提供以下两种解析器:
DocumentBuilderFactory:一个工厂类,用于创建 DOM Parser。
DocumentBuilder:一个构建 XML 文档的解析器。

要创建 DOM Parser,请使用以下代码:DocumentBuilderFactory factory = ();
DocumentBuilder builder = ();

2. 解析 XML 字符串

使用 DOM Parser 解析 XML 字符串时,有两种方法:
parse(String):解析 XML 字符串并返回 Document 对象。
parse(InputStream):解析 XML 字符串输入流并返回 Document 对象。

为了解析 XML 字符串,请使用以下代码:String xmlString = "text";
Document document = (new InputSource(new StringReader(xmlString)));

3. 导航 DOM 树

解析 XML 字符串后,您可以使用 Document 对象导航 DOM 树。
getDocumentElement():获取根元素。
getElementsByTagName(String):根据标签名查找元素。
getFirstChild() 和 getLastChild():获取第一个和最后一个子元素。
getNextSibling() 和 getPreviousSibling():获取下一个和上一个兄弟元素。

要导航 DOM 树,请使用以下代码:Element root = ();
Element child = ("child").item(0);
String text = ();

4. 修改 DOM 树

DOM 树是可修改的,您可以使用以下方法修改它:
setAttribute(String, String):设置或更改元素的属性。
appendChild(Node):向元素添加子元素。
removeChild(Node):从元素中删除子元素。

要修改 DOM 树,请使用以下代码:("id", "my-id");
Element newChild = ("new-child");
(newChild);

5. 序列化 DOM 树

修改 DOM 树后,您可以使用 Transformer 类将其序列化为 XML 字符串。
TransformerFactory:一个工厂类,用于创建 Transformer。
Transformer:一个转换 XML 文档的转换器。

要序列化 DOM 树,请使用以下代码:TransformerFactory transformerFactory = ();
Transformer transformer = ();
(document, new StreamResult());

示例代码

以下是一个完整示例,演示如何使用 DOM 解析、修改和序列化 XML 字符串:```java
import ;
import ;
import ;
import ;
import ;
import ;
import ;
public class JavaDOMParser {
public static void main(String[] args) throws Exception {
// XML 字符串
String xmlString = "text";
// 创建 DOM Parser
DocumentBuilderFactory factory = ();
DocumentBuilder builder = ();
// 解析 XML 字符串
Document document = (new InputSource(new StringReader(xmlString)));
// 修改 DOM 树
Element child = ("child").item(0);
("id", "my-id");
// 序列化 DOM 树
TransformerFactory transformerFactory = ();
Transformer transformer = ();
(new DOMSource(document), new StreamResult());
}
}
```

2024-12-03


上一篇:Java 泛型方法实现:赋能可重用代码和类型安全

下一篇:Java 控制台中高效操作字符串