繁体   English   中英

xpath请求选择具有commun属性的元素

[英]xpath request to select element that have commun attribute

我面临着一个我无法解决的困难要求。

因此,例如,这是我们的xml数据库:

<root>
    <A>
       <B attr="b">
       ... 
       </B>

       <C attr="c">
       ...
       </C>
    </A>
    <A>
       <B attr="b">
       ... 
       </B>
       <C attr="c">
       ...
       </C>
    </A>
    <A>
       <B attr="notb">
       ... 
       </B>
       <C attr="notc">
       ...
       </C>
    </A>
</root>

问题是 :在其子B和C中共有属性attr的根的A元素子什么?

在我们的示例中,第一个元素A和第二个元素A应该在awnser中,因为它们的属性attr在B和C中相等。最后一个元素A将不在anwser中。

预先感谢您的帮助。

尝试这个:

//A[B/@attr=following-sibling::A/B/@attr and C/@attr=following-sibling::A/C/@attr]

诀窍是使用following-sibling轴,因此您可以查找下一个元素,而不是前一个。

有关XPath轴的更多信息,请参见此处

正如安德森在评论中指出的那样,应该是:

//A[
    (
        B/@attr=following-sibling::A/B/@attr and 
        C/@attr=following-sibling::A/C/@attr
    )
    or 
    (
        B/@attr=preceding-sibling::A/B/@attr and 
        C/@attr=preceding-sibling::A/C/@attr
    )]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM