假設我有這樣的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,但我不認爲,將會對答案有任何影響)