我有这个XML,并且我试图让所有/root/ecommerce/cart/product
名为/root/ecommerce/promo/promobrands/promobrand/branduid
的孩子不在<root>
<ecommerce>
<cart>
<product>
<branduid>value1</branduid>
</product>
<product>
<branduid>value2</branduid>
</product>
<product>
<branduid>value3</branduid>
</product>
<product>
<branduid>value4</branduid>
</product>
</cart>
<promo>
<promobrands>
<promobrand>
<branduid>value1</branduid>
</promobrand>
<promobrand>
<branduid>value3</branduid>
</promobrand>
</promobrands>
</promo>
</ecommerce>
</root>
值中。
/root/ecommerce/product
所以我只需要获得其品牌值为value2
和value4
的{{1}}个节点。
在XPath中有没有办法得到这个结果?
答案 0 :(得分:2)
尝试以下XPath
表达式并告诉我结果
//cart/product[branduid[not(text()=//promobrand/branduid/text())]]
答案 1 :(得分:0)
如果您使用的是xpath 2.0,则下面的表达式是一种直接的实现方式:
//branduid except //promobrand/branduid
否则Andersson的回答很好。