1

如何在 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>   

查找拥有狗但没有猫的所有者的查询是什么?

4

1 回答 1

2

查找拥有狗但没有猫的所有者的查询是什么?

/PetOwners/OwnerID[Pets/Pet/Type = 'dog'][not(Pets/Pet/Type = 'cat')]

对于“没有猫”位,您必须使用not(Pets/Pet/Type = 'cat'),而不是Pets/Pet/Type != 'cat'因为后者的意思是“至少有一只不是猫的宠物”(这总是正确的,因为我们已经确定他们有一只狗)。

于 2013-11-10T14:28:55.293 回答