Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Egy predikátum egy csomóponthalmazt szűr egy tengelyhez képest (hasonlóan egy WHERE klauzulához egy SELECT állításban). A predikátum zárójelek között van megadva. Minden csomópont esetén a szűrendő csomópontban a predikátum kifejezést úgy értékelik, hogy az adott csomópont kontextuscsomópont, a csomópontok száma pedig kontextusméret. Ha a predikátum kifejezés TRUE-ra értékeli az adott csomópont esetén, akkor a csomópont bekerül a kapott csomóponthalmazba.
Az XPath lehetővé teszi a pozícióalapú szűrést is. Egy számra értékelő predikátumkifejezés választja ki ezt az ordinális csomópontot. Például a helyszíni útvonal Customer[3] visszaadja a harmadik vásárlót. Ilyen numerikus predikátumok nem támogatottak. Csak azok a predikátumkifejezések támogatottak, amelyek Boole-eredményt adnak vissza.
Megjegyzés:
Az XPath megvalósításának korlátairól és a W3C specifikációval való különbségekről információért lásd: Bevezetés az XPath lekérdezések használatába (SQLXML 4.0).
Kiválasztási predikátum: 1. példa
A következő XPath kifejezés (hely útja) a jelenlegi kontextuscsomópontból kiválasztja az <összes Ügyfélelem> gyermeket, amelynek CustomerID attribútuma ALFKI értéke:
/child::Customer[attribute::CustomerID="ALFKI"]
Ebben az XPath lekérdezésben child és attribute tengelynevek.
Customera csomópont teszt (IGAZ, ha Customerelemcsomópont<>, mert <az elem> a tengely fő csomóponttípusachild).
attribute::CustomerID="ALFKI" a predikátum. A predikátumban attribute a tengely és CustomerID a csomópont teszt (IGAZ, ha a CustomerID a kontextuscsomópont attribútuma, mert <az attribútum> a fő csomópont típusa).
A rövidített szintaxissal az XPath lekérdezés is meghatározható a következőképpen is:
/Customer[@CustomerID="ALFKI"]
Szelekció predikátum: 2. példa
A következő XPath kifejezés (helyútvonal) kiválasztja az aktuális kontextuscsomópontból az <összes Order> unokát, amelyek rendelkeznek a SalesOrderID attribútummal az 1 értékkel:
/child::Customer/child::Order[attribute::SalesOrderID="1"]
Ebben az XPath kifejezésben child és attribute a tengelynevek.
Customer, Order, és SalesOrderID a csomóponttesztek.
attribute::OrderID="1" a predikátum.
A rövidített szintaxissal az XPath lekérdezés is meghatározható a következőképpen is:
/Customer/Order[@SalesOrderID="1"]
Szelekció predikátum: 3. példa
A következő XPath kifejezés (hely útja) kiválasztja a jelenlegi kontextuscsomópontból az <összes Ügyfél> gyermeket, amelynek egy vagy több <ContactName> gyermeke van:
child::Customer[child::ContactName]
Ez a példa feltételezi, hogy a< ContactName> az XML dokumentumban szereplő< ügyfélelem> gyermekeleme, amelyet egy annotált XSD sémában elemközpontú leképezésnek neveznek.
Ebben az XPath kifejezésben child a tengely neve.
Customera csomópont teszt (IGAZ, ha Customerelemcsomópont<>, mert <az elem> a tengely fő csomóponttípusachild).
child::ContactName a predikátum. A predikátumban child a tengely és ContactName a csomópont teszt (IGAZ, ha ContactNameelemcsomópont<>).
Ez a kifejezés csak <a kontextuscsomópont Ügyfélelem> gyermekeit adja vissza, amelyek ContactName> elem gyermekekkel< rendelkeznek.
A rövidített szintaxissal az XPath lekérdezés is meghatározható a következőképpen is:
Customer[ContactName]
Kiválasztási predikátum: 4. példa
Az alábbi XPath kifejezés kiválasztja <a kontextuscsomópont Ügyfélelem> gyermekeit, amelyek nem rendelkeznek< ContactName> elem gyermekekkel:
child::Customer[not(child::ContactName)]
Ez a példa feltételezi, hogy <a ContactName> az XML dokumentum Ügyfél<> elemének gyermekeleme, és a ContactName mező nem szükséges az adatbázisban.
Ebben a példában child a tengely.
Customera csomópont teszt (TRUE, ha Customer elemcsomópont<>).
not(child::ContactName) a predikátum. A predikátumban child a tengely és ContactName a csomópont teszt (IGAZ, ha ContactName elemcsomópont<>).
A rövidített szintaxissal az XPath lekérdezés is meghatározható a következőképpen is:
Customer[not(ContactName)]
Kiválasztási predikátum: 5. példa
A következő XPath kifejezés kiválasztja az aktuális kontextuscsomópontból az <összes CustomerID attribútummal rendelkező Ügyfél> gyermeket:
child::Customer[attribute::CustomerID]
Ebben a példában child a tengely és Customer a csomópont teszt (IGAZ, ha Customer<elemcsomópont> ).
attribute::CustomerID a predikátum. A predikátumban attribute a tengely és CustomerID a predikátum (TRUE, ha CustomerIDegy< attribútumcsomópont>).
A rövidített szintaxissal az XPath lekérdezés is meghatározható a következőképpen is:
Customer[@CustomerID]
Kiválasztási predikátum: 6. példa
A Microsoft SQLXML 4.0 támogatja az XPath lekérdezéseket, amelyek keresztszorzatot tartalmaznak a predikátumban, ahogy az alábbi példa is mutatja:
Customer[Order/@OrderDate=Order/@ShipDate]
Ez a lekérdezés kiválasztja az összes olyan vásárlót, amelyre Order a OrderDateShipDateOrderbármely .
Lásd még:
Bevezetés az annotált XSD sémákhoz (SQLXML 4.0)
Kliensoldali XML formating (SQLXML 4.0)