我正在做的是:我有一个xml树,我用第二个xml树中的一些小更改来重新构建它(我不对旧树做任何更改)。下面是我目前正在处理的xml代码的一个示例。
<foo xmlns="http://some.name/space"
xmlns:ns2="http://some.other/name/space"
schemaLocation="http://some.name/space ../../Schema1.xsd
http://some.other/name/space ../../Schema2.xsd
http://third.name/space ../../Schema3.xsd">
<bar xsi:type="ns2:ApplePie">
<ns2:apple xmlns:ns3="http://third.name/space">
<ns3:choclate name="Lindt" form="round">
<ns3:blackChoclate xsi:type"ns3:YummyBlackChoclate">
...
</ns3:blackChoclate>
</ns3:choclate>
</ns2:apple>
</bar>
</foo>当我得到代表Element的<ns3:blackChoclate>时,我想知道在这一点上定义了哪个prefixes+namespaces。
我想知道这一点,因为我必须将黑色Choclate元素移到新xml树中的其他位置,为此,我需要知道使用的前缀中哪些定义得比在foo元素中晚。
目前,我只是使用.getParentNode(...)“向上”遍历树,并搜索xmlns:...属性,但我想知道是否有更简单的方法来找出在这一点上定义了哪个prefixes+namespaces。
发布于 2015-10-26 11:13:35
实现这一目标的唯一方法是在遍历dom文档时跟踪映射中的名称空间和前缀!
您应该有一个包含前缀作为键的HashMap和名称空间的字符串列表(列表是因为您可以重新定义前缀!)
https://stackoverflow.com/questions/33300642
复制相似问题