XML och XPath

Vad är XPath?

XPath är en huvudkomponent i XSLT-standarden.

XPath kan användas för att lokalisera (navigera) element och egenskaper i ett XML-dokument.

XPath

XPath
  • XPath är en syntax för att definiera olika delar av ett XML-dokument
  • XPath använder sökvägsexpressioner för att navigera i ett XML-dokument
  • XPath innehåller en standardfunktionslager
  • XPath är en huvudkomponent i XSLT och XQuery
  • XPath är en rekommenderad standard av W3C

XPath-sökvägsexpressioner

XPath använder sökvägsexpressioner för att välja noder eller nodgrupper i ett XML-dokument. Dessa sökvägsexpressioner ser mycket lika ut som de uttryck du ser när du använder ett traditionellt datorfilsystem.

XPath-expressioner kan användas i JavaScript, Java, XML Schema, PHP, Python, C och C++ samt många andra språk.

XPath används i XSLT

XPath är en huvudkomponent i XSLT-standarden.

Förstå XPath, kan du utnyttja XSL fullt ut.

XPath Exempel

Vi kommer att använda följande XML-dokument:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="美食">
  <title lang="zh">雅舍谈吃</title>
  <author>梁实秋</author>
  <year>2013</year>
  <price>35</price>
</book>
<book category="儿童">
  <title lang="zh">了不起的狐狸爸爸</title>
  <author>罗尔德·达尔</author>
  <year>2009</year>
  <price>10.00</price>
</book>
<book category="文学">
  <title lang="zh">将熟悉变为陌生</title>
  <author>齐格蒙·鲍曼</author>
  <author>彼得·哈夫纳</author>
  <author>Kurt Cagle</author>
  <author>James Linn</author>
  <author>Vaidyanathan Nagarajan</author>
  <year>2003</year>
  <price>49.99</price>
</book>
<book category="政治">
  <title lang="zh">论美国的民主</title>
  <author>托克维尔</author>
  <year>1989</year>
  <price>60.00</price>
</book>
</bookstore>

I tabellen nedan listas några XPath-uttryck samt resultaten av dessa uttryck:

XPath-uttryck Resultat
/bookstore/book[1] Välj det första book-elementet som är under bookstore-elementet.
/bookstore/book[last()] Välj det sista book-elementet som är under bookstore-elementet.
/bookstore/book[last()-1] Välj det andra sista book-elementet som är under bookstore-elementet.
/bookstore/book[position()<3] Välj de två första book-elementen som är under bookstore-elementet.
//title[@lang] Välj alla title-element som har en egenskap med namnet "lang".
//title[@lang='en'] Välj alla title-element som har en "lang"-egenskap med värdet "en".
/bookstore/book[price>35.00] Välj alla book-element inom bookstore-elementet där price-elementets värde är större än 35.00.
/bookstore/book[price>35.00]/title Välj alla title-element inom book-elementet i bookstore-elementet där price-elementets värde är större än 35.00.

XPath-handbok

Du kommer att lära dig om i vår XPath-handbok XPath mer kunskap.