Xpath 是否有方法获取其子值不等于另一个子轴的节点?
我有这个XML,我试图获取所有的Xpath 是否有方法获取其子值不等于另一个子轴的节点?,xpath,Xpath,我有这个XML,我试图获取所有的/root/ecommerce/cart/product,它们的branduid子项不在/root/ecommerce/promo/promobrands/promobrand/branduid值中 <root> <ecommerce> <cart> <product> <branduid>value1</brandui
/root/ecommerce/cart/product
,它们的branduid子项不在/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>
价值1
价值2
价值3
价值4
价值1
价值3
因此,我只需要获取branduid值为value2
和value4
的/root/ecommerce/product
节点。
XPath中是否有方法获得此结果?请尝试下面的
XPath
表达式,并告诉我结果
//cart/product[branduid[not(text()=//promobrand/branduid/text())]]
如果您使用的是xpath 2.0,下面的表达式是一种简单的实现方法:
//除//promobrand/branduid之外的branduid
否则,安德森的答案是好的