我想获取xml中某个元素的文本值。在下面的 XML 中,当 CODE 的值为“Code1”时,我希望获取 SUBCHILD 的值,而不管 MP 实体的位置(当可能有许多 MP 元素时)。我还希望能够使用 JAXB 和 MOXy 以及 @XMLPath 属性来做到这一点
我的xml是这样的:
<RQ>
<PQ>
<MP>
<INFO>
<CODE>Code1</CODE>
</INFO>
<CHILD>
<SUBCHILD>VALUE for Code1</SUBCHILD>
</CHILD>
</MP>
<MP>
<INFO>
<CODE>Code2</CODE>
</INFO>
<CHILD>
<SUBCHILD>VALUE for Code2</SUBCHILD>
</CHILD>
</MP>
</PQ>
</RQ>
我想要“Code1 的 VALUE”,无论其位置如何,包含 Code1 的 MP 元素可以位于任何位置。我为此使用的 XPath 是:
RQ/PQ/MP[INFO/CODE='Code1']/CHILD/SUBCHILD
但我似乎无法从 MOXy 获取我想要的值,是否不支持此功能,我知道您可以基于属性进行映射,但我需要它取决于另一个元素的值
如有任何帮助,我们将不胜感激
最佳答案
MOXy 目前在其 @XmlPath
注释上不支持以下形式的 XPath。
存在一个 Unresolved 错误,如果不支持指定的 XPath,则会引发异常。
您可以针对您正在寻找的行为提出增强请求吗?
关于java - 使用 EclipseLink MOXy 和 JAXB 给定另一个元素的值的 XPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26402645/