如果元素存在于所有父元素中,如何通过 XPATH 检查 [英] How to check via XPATH if element exist in all parent's elements
本文介绍了如果元素存在于所有父元素中,如何通过 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屋!
查看全文