gpt4 book ai didi

java - 如何输出包含全局命名空间定义的单个 DOM 节点

转载 作者:行者123 更新时间:2023-11-30 09:44:31 25 4
gpt4 key购买 nike

我有一个 DOM 文档,我使用 XPath 提取了某个节点。之后我想将该节点序列化为 XML。我正在使用以下代码:

TransformerFactory
.newInstance()
.newTransformer()
.transform(new DOMSource(node),
new StreamResult(getOutputStream()));

这适用于一个简单的文档,但请考虑以下文档:

<xml xmlns:foo="...">
<bar foo:bar="xyz" />
</xml>

在这种情况下,如果我想序列化节点“bar”,那么上面的代码就会中断,因为转换器说:

Namespace for prefix 'foo' has not been declared

如何让转换器将命名空间定义复制到新文档中?

最佳答案

将您的 DocumentBuilderFactory 设置为命名空间感知。

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);

关于java - 如何输出包含全局命名空间定义的单个 DOM 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7873022/

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