Kehittäjä | World Wide Web Consortium |
---|---|
Ensimmäinen versio | 1999 |
Viimeinen versio | 3,1 (21. maaliskuuta 2017) |
Lue muodot | Laajennettava merkintäkieli ja JavaScript-objektien merkinnät |
Tyyppi |
Kyselykieli Ohjelmointikieli |
XPath on kyselykieli XML- asiakirjan osan löytämiseksi . Alun perin XPointerille ja XSL: lle yhteisten toimintojen syntaksin ja semantiikan tuottamiseksi XPath otettiin nopeasti käyttöön kehittäjänä helppokäyttöisenä kyselykielenä.
XPath-lauseke on lokalisointipolku , joka koostuu lokalisointivaiheista (ranskaksi kutsutaan myös vaiheiksi ). Sijaintivaiheet erotetaan merkillä “/”.
Kummassakin lokalisointivaiheessa on kolme osaa:
Akseli osoittaa XML-puun liikkumissuunnan suhteessa nykyiseen solmuun tai juuresta. Esimerkiksi child::valitsee nykyisen solmun alisolmut. XPaksessa, kun akselia ei ole määritelty, se on implisiittisesti lasten akseli ( child::). Toinen yleisesti käytetty akseli on attribuuttien akseli, jota edustaa merkki at ( @). Kaikissa 13 akselissa on mahdollisuus ilmaista sukututkimussuhteita tai ottaa huomioon asiakirjan lukujärjestys.
Solmutesti mahdollistaa solmujen valitsemisen niiden nimen tai tyypin mukaan. Esimerkiksi testi text()valitsee kaikki tyypin tekstin solmut (tarkasteltavalla akselilla).
Predikaatit ovat monimutkaisempia ilmaisuja; niitä käytetään akselin ja solmutestin valitsemien solmujen suodattamiseen. Predikaatit kirjoitetaan hakasulkeissa ("[", "]"). Jos predikaatti arvioi arvon tosi, vastaavat solmut valitaan.
XPath tarjoaa siis peräkkäisen haun solmuilla. XPath-lausekkeen arvioinnin tulos on sekvenssi, joka sisältää solmuja ja atomi-arvoja (tekstit, Booleans ...).
Valittujen arvojen luonteen (numero, looginen luku, teksti) mukaan XPath tarjoaa useita toimintoja. Nämä toiminnot ovat rajalliset, koska ne on tarkoitettu enemmän käytettäviksi predikaateissa kuin käsittelyn suorittamiseksi valitulle datalle.
Käytetyimmät numerot ovat: summa (), laskenta () ja aritmeettiset operaattorit. Useimmin käytettyihin merkkijonoihin liittyvät toiminnot ovat: substing (), string-length (), concat ().
Harkitse seuraavaa XML-asiakirjaa:
<?xml version="1.0"?> <racine> <encyclopedie nom="Wikipedia" site="http://fr.wikipedia.org/"> <article nom="XPath"> <auteurs> <auteur> <nom>Dupont</nom> </auteur> <auteur> <nom>Dubois</nom> </auteur> </auteurs> </article> </encyclopedie> </racine>XPath-lauseke | Tulos |
---|---|
/ | valitsee "nuken" solmun, nimeltään juurielementti , joka kattaa koko asiakirjan, mukaan lukien doctype <? xml version = "1.0"?> |
/ root | valitse tyhjä solmu, koska "root" -elementtiä ei ole (mutta "root" ) |
// artikkeli | valitsee asiakirjan kaikki "artikkeli" -elementit missä tahansa |
/ root / tietosanakirja | valitsee ainoan tietosanakirjaelementin, koska se on täällä ainoa juuren lapsi, jolla on tämä nimi |
// artikkeli [@ name = 'XPath'] | valitsee asiakirjan kaikki "artikkeli" -elementit missä tahansa, "name" -määritteellä, jonka arvo on "XPath" |
Kaikki nämä XPath-lausekkeet ovat absoluuttisia (ne alkavat "/" -merkillä ), toisin sanoen ne antavat saman tuloksen asiayhteydestä riippumatta. Seuraavat lausekkeet ovat suhteellisia . Jos nykyinen asiayhteys on ainoa tietosanakirjaelementti , ne antavat:
XPath-lauseke | Tulos |
---|---|
kohde | valitse "artikkeli" -elementti |
juuri | ei valitse mitään kontekstin perusteella |
artikkeli [1] / tekijät / kirjoittaja [2] | valitsee ensimmäisen artikkelin toisen kirjoittajan (Dubois) |
artikkeli [määrä (artikkeli / tekijät / tekijä)> 1] | valitse artikkelit, joilla on vähintään 2 kirjoittajaa |
../juuri | valitsee "root" -elementin , koska se on nykyisen elementin vanhempi |
Näiden valintojen tulos riippuu tehtävän luonteesta:
XPath-syntaksista on tullut täydellisempi. Standardi XPath 2.0 (tuumaa) , W3C-suositus vuodesta23. tammikuuta 2007kuvaa XSLT 2.0- ja XQuery 1.0 -kielien yhteisen osajoukon , joka muodostaa myös paljon rikkaamman erillisen XML-kyselykielen kuin XSLT 1: n ensimmäinen versio.
XPath on XSLT: n peruskyselykieli . Se määrittää, sovelletaanko mallisääntöä ( match- attribuuttinsa kautta ), ja sitä voidaan käyttää myös sisällön purkamiseen XSLT-ohjelman muuntamasta XML-dokumentista.
XPathia voidaan käyttää kyselykielenä XML-tietokannoissa , usein XQueryn osajoukkona .
XPathia käytetään säännön lausekielenä Schematronissa ja osittain myös XML-skeemassa .
XPathia voidaan käyttää komentoriviltä, tässä xpath- komennolla, joka tulee Perl XML :: XPath -moduulista . Täältä etsimme Atom- syndikaatiosyötteen artikkeleiden URL-osoitteet :
$ xpath -e '//link[@rel="alternate"]/@href' feed.atom
Toinen esimerkki tiedostojen hakemiseen xfind-toiminnolla (XML-tiedostoa käytetään tiedoston ominaisuuksien mallintamiseen):
$ ./find -xpath '/bin/*[@size > /bin/bash/@size]' /bin/ipv6calc /bin/rpm