gpt4 book ai didi

Java+DOM : How do I convert a DOM tree without namespaces to a namespace-aware DOM tree?

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

我从某个 API(不在 JDK 中)收到一个 Document(DOM 树)。遗憾的是,此 Document 不支持命名空间。据我所知,DOM 一旦生成,命名空间意识就无法在之后“添加”。

使用 Transformer 将此 Document 转换为字符串时,XML 是正确的。元素具有 xmlns:... 属性和名称前缀。但从 DOM 的角度来看,没有命名空间,也没有前缀。

我需要能够将此 Document 转换为一个新的Document,它 命名空间感知的。是的,我可以通过将它转换为字符串并返回到启用命名空间的 DOM 来实现这一点。

但是:原始树的节点设置了用户对象。转换为字符串并返回将使这些用户对象到新的 Document 的映射非常复杂,如果不是不可能的话。所以我真的需要一种方法将非命名空间 DOM 转换为命名空间 DOM。

是否有任何或多或少直接的解决方案?

最坏的情况(我希望避免的情况)是手动遍历旧的 Document 树并为每个旧的创建新的命名空间感知 Node 节点。这样做,必须手动“解析” namespace 前缀,注意 xmlns 属性,并维护前缀和 namespace URI 之间的映射。很多事情都会出错。

最佳答案

我想您已经发现没有简单的方法可以做到这一点。如果您有一个旧式 DOM,认为 xmlns:foo="xxx"是一个属性而不是 namespace 声明,则无法神奇地“升级”它。您将不得不序列化/重新序列化或手动遍历树并自己转换这些属性。

关于Java+DOM : How do I convert a DOM tree without namespaces to a namespace-aware DOM tree?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2981283/

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