Xml 带有谓词的Xpath注释

Xml 带有谓词的Xpath注释,xml,xpath,predicate,moxy,Xml,Xpath,Predicate,Moxy,首先,我是Xpath新手。我发现了大量使用Xpath查询元素是否存在的示例。但是我无法实现我想要的示例。我的xml类似于: <a> <b> <c>xxx</c> <d>yyy</d> </b> </a> <a> <b> <d>zzz</d> </b> </a

首先,我是Xpath新手。我发现了大量使用Xpath查询元素是否存在的示例。但是我无法实现我想要的示例。我的xml类似于:

<a>
    <b>
        <c>xxx</c>
        <d>yyy</d>
    </b>
</a>
<a>
    <b>
        <d>zzz</d>
    </b>
</a>
有人能告诉我怎么做吗

谢谢

阿里

选择具有
子代
节点
c
d
a
节点


请注意,您的XML示例无效,因为它缺少根节点(可能只是一个示例,而不是您的实际文档…。

谢谢您的回答。实际上我认为应该是这样的:a/b[/c和//b]。我已经尝试了您和我的方法,但jaxb仍然提供了所有“a”元素:(这取决于您想要的具体程度。您正在使用原始查询指定
a/b
下的
c
d
节点——您的问题只说明您想要
a
节点,其中
c
d
都是后代。您在注释中的查询将不起作用,因为
/
搜索任何根节点下的节点——您需要的节点是
a
的后代。如果您有特定的输出,您需要在问题中明确说明。您对“b和c下的a”的看法是正确的,我已经更正了:)thx。我使用了后代,但即使有合适的元素,它也不会带来任何元素:(我不知道这是否是因为注释的缘故,您的XML验证了吗?您是否使用在线测试仪尝试过xpath(例如)那么您的实际XML呢?如果XPath不起作用,那么可能会出现很多问题——这可能与XPath本身无关。:\n正如OP的一个标记提到使用了moxy,像后代::等这样的轴将不起作用。请参见示例:此处:还有尚未解决的错误
@XPath("a/b[boolean(c) and boolean(d)]")
private A a;
a[descendant::c and descendant::d]