XPath使用EclipseLink MOXy和JAXB给出另一个元素的值

时间:2014-10-16 10:57:05

标签: java xml xpath jaxb moxy

我想获取xml中某个元素的文本值。在下面的XML中,当CODE的值为' Code1'时,我希望得到SUBCHILD的值。当可能存在许多MP元素时,不管MP实体的位置如何。此外,我希望能够使用带有@XMLPath属性的JAXB和MOXy

来完成此操作

我拥有的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&#39; VALUE不管它的位置如何,包含Code1的MP元素可以在任何地方。我将使用的XPath将是:

RQ/PQ/MP[INFO/CODE='Code1']/CHILD/SUBCHILD

但我似乎无法从MOXy获得我想要的值,是不是支持此功能,我知道你可以根据属性进行映射,但我需要它取决于另一个元素的值

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

MOXy目前不支持@XmlPath注释中以下格式的XPath。

如果不支持指定的XPath,则会抛出一个异常错误。

您可以针对您要查找的行为打开增强请求吗?