如何在Xpath中执行非单调查询?
例如:
<PetOwners>
<OwnerID oid= "01">
<Name>John</Name>
<Pets>
<Pet> <No>1</No><Type>dog</Type></Pet>
<Pet> <No>2</No><Type>cat</Type></Pet>
</Pets>
</OwnerID>
<OwnerID oid= "02">
<Name>Jack</Name>
<Pets>
<Pet> <No>1</No><Type>dog</Type></Pet>
<Pet> <No>2</No><Type>bird</Type></Pet>
</Pets>
</OwnerID>
</PetOwners>
查找拥有狗但没有猫的主人的查询是什么?
答案 0 :(得分:2)
查找拥有狗但没有猫的主人的查询是什么?
/PetOwners/OwnerID[Pets/Pet/Type = 'dog'][not(Pets/Pet/Type = 'cat')]
对于“没有猫”位,您必须使用not(Pets/Pet/Type = 'cat')
而不是Pets/Pet/Type != 'cat'
,因为后者意味着“至少有一只宠物不是猫”(这总是要是的,因为我们已经确定他们有一只狗了。