java - 使用 EclipseLink MOXy 和 JAXB 给定另一个元素的值的 XPath

标签 java xml xpath jaxb moxy

我想获取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/

相关文章:

java - 无法解析 : :truesdk-0. 7-releasePartner

java - 以编程方式允许@RequestMapping

java - Kryonet 客户端连接问题 Java

java - XML文件的Java通用解析

java - 为有效 xml 创建 Diff 对象时,XMLUnit 抛出 NullPointerException

python - XPath 通过正则表达式运行 text() 仅返回数字

java - 如何通过排除原则从另一个表中过滤选择

xml - 如何处理深度 XQuery 递归问题

google-chrome - 仅使用 chrome 控制台运行 selenium 命令

ruby-on-rails - 如何使用 XPath 检查子元素的位置