假设我有这样的XML:这两种样式的xpath逻辑'和'等价吗?
<Products>
<Product name="Liquid Oxygen">
<Manufacturer name="Universal Exports" country="UK" />
</Product>
<Product name="Hydrazine">
<Manufacturer name="ACME Inc." country="USA" />
</Product>
<Product name="Gaseous Oxygen" obsolete="true">
<Manufacturer name="Universal Exports" country="UK" />
</Product>
<Product name="Liquid Nitrogen">
<Manufacturer name="Penguins R Us" country="Antarctica" />
</Product>
</Products>
我想挑选出有Manufacturer
子节点与UK
@country
产品的节点,但不具有的true
一个@obsolete
。我可以说,无论是
/Products/Product[Manufacturer/@country = 'UK' and not(@obsolete = 'true)]
或
/Products/Product[Manufacturer/@country = 'UK'][not(@obsolete = 'true')]
无一不让我我想要的节点。
我的问题是,这两种方法之间有什么功能差异和条件?有不同的方法可以产生不同的结果吗? (我知道and
在更复杂的条件下起作用)在风格上,是比其他人更喜欢的吗?
(我使用C#和.NET 2.0,但我不认为,将会对答案有任何影响)