gpt4 book ai didi

java - 使用 DocumentBuilderFactory 将 Xml 文档转换为 DOM 对象

转载 作者:数据小太阳 更新时间:2023-10-29 02:59:26 26 4
gpt4 key购买 nike

我目前正在修改一段代码,我想知道 XML 的格式化方式(制表符和间距)是否会影响它被解析到 DocumentBuilderFactory 类中的方式。

本质上,问题是......我能否将一个没有间距的大长字符串传递到 DocumentBuilderFactory 中,或者它是否需要以某种方式进行格式化?

在此先感谢,下面包含来自 Oracles 网站的类定义。

类 DocumentBuilderFactory

“定义了一个工厂 API,使应用程序能够获得一个解析器,该解析器可以从 XML 文档生成 DOM 对象树。”

最佳答案

文档会有所不同。制表符和新行将被转换为文本节点。您可以在 DocumentBuilderFactory 上使用以下方法消除它们:

但为了使其正常工作,您必须设置 DOM 解析器以根据 DTD 或 xml 模式验证内容。

或者,您可以使用类似以下内容以编程方式自行删除多余的空格:

public static void removeEmptyTextNodes(Node node) {
NodeList nodeList = node.getChildNodes();
Node childNode;
for (int x = nodeList.getLength() - 1; x >= 0; x--) {
childNode = nodeList.item(x);
if (childNode.getNodeType() == Node.TEXT_NODE) {
if (childNode.getNodeValue().trim().equals("")) {
node.removeChild(childNode);
}
} else if (childNode.getNodeType() == Node.ELEMENT_NODE) {
removeEmptyTextNodes(childNode);
}
}
}

关于java - 使用 DocumentBuilderFactory 将 Xml 文档转换为 DOM 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3404391/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com