xpathKomma igång med xpath


Anmärkningar

XPath är ett språk för adressering av delar av ett XML-dokument.

Det används i XSLT och är en delmängd av XQuery. Bibliotek finns också för de flesta andra programmeringsspråk.

XPath är en internationell standard med specifikationer publicerade av W3C:

versioner

Version Utgivningsdatum
1,0 1999-12-16
2,0 2007-01-23
3,0 2014/04/08
3.1 (W3C kandidatrekommendation) 2015/12/17

Vanliga HTML-operationer

Om ingången HTML DOM är

<html>
    <body>
        <a>link</a>
        <div class='container' id='divone'>
            <p class='common' id='enclosedone'>Element One</p>
            <p class='common' id='enclosedtwo'>Element Two</p>
        </div>
    </body>
</html>
 

Hitta ett element med en specifik id på hela sidan

//*[@id='divone'] # Returns <div class='container' id='divone'>
 

Hitta ett element med en specifik id på en viss väg

/html/body/div/p[@id='enclosedone'] # Returns <p class='common' id='enclosedone'>Element One</p>
 

Välj ett element med en viss id & klass

//p[@id='enclosedone' and @class='common'] # Returns <p class='common' id='enclosedone'>Element One</p>
 

Välj texten för ett visst element

//*[@id='enclosedone']/text() # Returns Element One
 

Exempel på XML (utan namnutrymmen)

Här är ett exempel XML mot vilket exempel XPaths kan skrivas:

<r>
  <e a="1"/>
  <f a="2" b="1">Text 1</f>
  <f/>
  <g>
    <i c="2">Text 2</i>
    Text 3
    <j>Text 4</j>
  </g>
</r>
 

Välj ett element

För exemplet XML (utan namnutrymmen):

Denna XPath,

/r/e
 

kommer att välja detta element:

<e a="1"/>
 

Välj text

För exemplet XML (utan namnutrymmen):

Denna XPath,

/r/f/text()
 

kommer att välja textnoden med detta strängvärde:

"Text 1"
 

Och denna XPath,

string(/r/f)
 

kommer att returnera strängvärdet för f , vilket också är:

"Text 1"
 

Testa Xpaths i webbläsarkonsolen

Ett snabbt sätt att testa din xpath är i verktygskonsolen för webbläsarens verktyg.

Formatet är

   $x('//insert xpath here')
 

$ - anger att det är en väljare.

x - anger att det använder xpaths

Exempel:

$x("//button[text() ='Submit']")
 

När detta kommando matas in kommer det att returnera alla förekomster av element som är knappar med text lika med Skicka.