如果元素存在于所有父元素中,如何通过 XPATH 检查 [英] How to check via XPATH if element exist in all parent's elements

查看:35
本文介绍了如果元素存在于所有父元素中,如何通过 XPATH 检查的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我们有一个 XML 文档:

If we have an XML document:

<?xml version="1.0" encoding="utf-8"?>
<STICKERINFO>
    <ORDER>
        <NUMBER>0171467783</NUMBER>
        <STICKER>
            <ARTICLE>03359140001</ARTICLE>
        </STICKER>
        <STICKER>
            <ARTICLE>11408038001</ARTICLE>
        </STICKER>
    </ORDER>
    <ORDER>
        <NUMBER>0171473000</NUMBER>
    </ORDER>
</STICKERINFO>

我可以检查 /STICKERINFO/ORDER/STICKER/ARTICLE 是否存在:

I can check that /STICKERINFO/ORDER/STICKER/ARTICLE exists:

boolean(/STICKERINFO/ORDER/STICKER/ARTICLE)

但是如何检查 all /STICKERINFO/ORDER/ 中是否存在/STICKERINFO/ORDER/STICKER/ARTICLE?

But how can I check if /STICKERINFO/ORDER/STICKER/ARTICLE exists in all /STICKERINFO/ORDER/?

在当前示例中 XPATH 表达式应返回 false

In current example XPATH expression should return false

推荐答案

XPath 2.0 有every":

XPath 2.0 has 'every' for that:

 every $order in /STICKERINFO/ORDER satisfies boolean($order/STICKER/ARTICLE)

并且在 XPath 1 中,您可以测试每个订单是否都有文章,即订单数量是否与包含文章的订单数量相同:

And in XPath 1 you can test if there is an article for every order, i.e. if the count of orders is the same as the count of orders with articles:

  count(/STICKERINFO/ORDER) =  count(/STICKERINFO/ORDER[STICKER/ARTICLE])

这篇关于如果元素存在于所有父元素中,如何通过 XPATH 检查的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆