2017-12-07 1 views
0

Ich versuche herauszufinden, wie alle Lieferanten, die nicht TV als Produkt haben. Ich möchte auch eine Erklärung zu den Unterschieden Ihrer Antwort und was ich habe. Ich habe die folgende Abfrage geschrieben:XPath Query mit NOT, nicht funktioniert

SELECT XMLColumn.query('/SuppliersList/Supplier/Product[not(@name="TV")]/..') 
FROM Tb_XPathQueryTable 

Das ist mein Tisch, sowie eine Reihe von anderen Lieferanten.

<SuppliersList> 
    <Supplier name="Joe"> 
    <City>Paris</City> 
    <Product name="Airplane"/> 
    <Product name="Milk"/> 
    <Product name="TV"/> 
    <Product name="Orange"/> 
</Supplier> 

Antwort

2

Auf Ihrer xpath Sie zuerst das Produkt auswählen und dann an ihre Mutter gehen, so wird es dem angegebenen Beispiel entsprechen (weil die TV-Produkt Geschwister hat, die die gleichen Eltern übereinstimmen).

sollte diese XPath arbeiten:

/SuppliersList/Supplier[not(Product[@name="TV"])] 

Wie Sie sehen können, sind wir der Auswahl Lieferant, die kein Produkt Kind enthält mit name="TV"

+0

Es funktioniert, danke! Danke auch für das Erklären. –