Grammar ng XPath
- Nakaraang Pahina Nodo ng XPath
- Susunod na Pahina Aksis ng XPath
XPath ay gumagamit ng patak na ekspresyon upang piliin ang mga node o kumbinasyon ng mga node sa XML dokumento. Ang mga node ay pinili sa pamamagitan ng paglalakad sa daan (path) o mga hakbang (steps).
XML sample dokumento
Ginagamit namin itong XML dokumento sa mga susunod na halimbawa.
<?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> <book> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore>
Pagpili ng mga node
XPath ayon sa patak na ekspresyon sa pagpili ng mga node sa XML dokumento. Ang mga node ay pinili sa pamamagitan ng paglalakad sa daan o step.
Nakalista sa ibaba ang pinaka-kakilala na patubong na ekspresyon:
Ekspresyon | Description |
---|---|
nodename | Hilingan ang lahat ng mga anak na node ng kasalukuyang node. |
/ | Mula sa punong node, hilingan ang mga node. |
// | Mula sa kasalukuyang na napili na node, hilingan ang mga node sa dokumento, kahit saan ang mga ito ay nasa loob ng dokumento. |
. | Hilingan ang kasalukuyang node. |
.. | Hilingan ang magulang na node ng kasalukuyang node. |
@ | Hilingan ang attribute. |
Halimbawa
Sa ibabaw na talahanayan, nakuha namin ang ilang patubong na may predicate at ang resulta ng bawat patubong:
Path Expression | Nakita |
---|---|
bookstore | Hilingan ang lahat ng mga anak na node ng bookstore na elemento. |
/bookstore |
Hilingan ang pangunahing elemento na bookstore. Komento: Kung ang patubong ay nagsimula sa tunay na kalye ( / ), ang patubong na iyon ay laging representang isang tiyak na patubong sa isang elemento! |
bookstore/book | Hilingan ang lahat ng book na elemento na nasa loob ng mga elemento na nasa loob ng bookstore. |
//book | Hilingan ang lahat ng book na elemento kahit saan ang mga ito ay nasa loob ng dokumento. |
bookstore//book | Hilingan ang lahat ng book na elemento na nasa loob ng mga elemento na nasa loob ng bookstore, kahit saan ang mga ito ay nasa loob ng bookstore. |
//@lang | Hilingan ang lahat ng attribute na pangalan na lang. |
Predicate (Predicates)
Ang predicate ay ginagamit upang hanapin ang isang partikular na node o ang node na may isang tiyak na halaga.
Ang predicate ay nakasakop sa mga pagsasakop na nasa mga kwadrado na butas.
Halimbawa
Sa ibabaw na talahanayan, nakuha namin ang ilang patubong na may predicate at ang resulta ng bawat patubong:
Path Expression | Nakita |
---|---|
/bookstore/book[1] | Hilingan ang unang book na elemento na nasa loob ng bookstore na elemento. |
/bookstore/book[last()] | Hilingan ang huling book na elemento na nasa loob ng bookstore na elemento. |
/bookstore/book[last()-1] | Hilingan ang ikalawang huling book na elemento na nasa loob ng bookstore na elemento. |
/bookstore/book[position()<3] | Hilingan ang unang dalawang book na elemento na nasa loob ng bookstore na elemento. |
//title[@lang] | Hilingan ang lahat ng title na elemento na may attribute na pangalan na lang. |
//title[@lang='eng'] | Hilingan ang lahat ng title na elemento, at ang mga elemento na may halaga na eng ng attribute na lang. |
/bookstore/book[price>35.00] | Hilingan ang lahat ng book na elemento ng bookstore, at ang halaga ng price na elemento ay dapat mas malaki sa 35.00. |
/bookstore/book[price>35.00]/title | Piliin ang lahat ng title na elemento ng book elemento sa bookstore elemento, at ang value ng price na elemento ay dapat na hihigit sa 35.00. |
Piliin ang Hindi Kilalang Node
Ang wildcard ng XPath ay maaaring gamitin upang piliin ang hindi kilalang XML element.
Wildcard | Description |
---|---|
* | Match any element node. |
@* | Match any attribute node. |
node() | Match any type of node. |
Halimbawa
Sa ibabaw ng talahanayan, inilagay namin ang ilang mga path expression at ang resulta ng mga expression na ito:
Path Expression | Nakita |
---|---|
/bookstore/* | Piliin ang lahat ng mga anak na elemento ng bookstore elemento. |
//* | Piliin ang lahat ng elemento sa dokumento. |
//title[@*] | Piliin ang lahat ng title na elemento na may attribute. |
Piliin ang Ilang Path
Sa pamamagitan ng paggamit ng operator "|" sa path expression, maaring piliin mo ang ilang mga path.
Halimbawa
Sa ibabaw ng talahanayan, inilagay namin ang ilang mga path expression at ang resulta ng mga expression na ito:
Path Expression | Nakita |
---|---|
//book/title | //book/price | Piliin ang lahat ng title at price na elemento ng book elemento. |
//title | //price | Piliin ang lahat ng title at price na elemento sa dokumento. |
/bookstore/book/title | //price | Piliin ang lahat ng title na elemento na nasa bookstore elemento, at ang lahat ng price na elemento sa dokumento. |
- Nakaraang Pahina Nodo ng XPath
- Susunod na Pahina Aksis ng XPath