gpt4 book ai didi

java - 如何将 xml 命名空间添加到 Java 中的非根元素?

转载 作者:行者123 更新时间:2023-12-01 15:30:23 26 4
gpt4 key购买 nike

我收到的 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 以将命名空间和前缀添加到所有项目元素及其子元素?我正在抵制手动完成并完成它的冲动。我想我应该在这里查看以寻求帮助。

谢谢。

最佳答案

不确定您的 XML 是什么形式。您提出的 mod 过于复杂,您只需要一个调整 item 元素以添加 xmlns="blah"。只需进行快速字符串破解可能很容易,或者正确的修复方法是运行 xsl 转换或解析修复序列化步骤来添加 xmlns 位。 HTH

关于java - 如何将 xml 命名空间添加到 Java 中的非根元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9593762/

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