我收到的xml看起来像这样,并使用XMLBeans来解析它:
<reply xmlns="http://www.xmlisfun.com/abc/def/1.0">
<item-list>
<item>
<item-data>data</item-data>
</item>
</item-list>
</reply>
架构中存在一个名为ItemListReplyType的复杂类型,该类型已导入。
由于有人在使用模式定义,因此XMLBeans解析的对象将无法正确生成ItemListReplyType对象。 ItemListReplyType对象将始终说它不包含任何“item”对象。这是由于某些命名空间冲突造成的。
我注意到,当我解析以下内容时,我能够在ItemListReplyType对象的代码中正常检索我的对象数组(数组不为空 - “item”对象按预期存在)。
<reply xmlns="http://www.xmlisfun.com/abc/def/1.0">
<item-list>
<prefix:item xmlns:prefix="http://www.xmlisfun.com/particular_namespace">
<prefix:item-data>data</prefix:item-data>
</prefix:item>
</item-list>
</reply>
毋庸置疑,正确的解决方案是修复对模式的破解并重新生成所有XMLBeans对象。然而,在项目建立在所有这些对象之前,这将是一年前的一个强大的解决方案。我宁可不要惹这个。
有没有办法轻松修改XML,为所有项元素及其子元素添加命名空间和前缀?我正在努力手动完成它并完成它。我想我会在这里查看帮助。
感谢。
答案 0 :(得分:1)
不确定您的XML是什么形式。您提出的mod过于复杂,您只需要一个 调整item元素以添加xmlns =“blah”。可能很容易做一个快速的字符串黑客或正确的修复是运行xsl转换或parse-fix-serialise步骤添加xmlns位。 HTH