Movatterモバイル変換


[0]ホーム

URL:


Pereiti prie turinio
VikipedijaLaisvoji enciklopedija
Paieška

XPath

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.

XPath – kelio standartas duomenų struktūraiXML dokumente pasiekti. XPath sintaksė kiek primenafailų sistemose naudojamą kelią dokumentams aplanke rasti, tačiau yra daug lankstesnė ir numato atvejus kuomet tame pačiame aplanke (pavyzdžiui, narių sąraše) yra vienodus vardus turintys elementai. Galimas elementų indeksavimas bei paieška pagal atributų reikšmes. XPATH gali būti naudojama skyrium arba kaip sudėtingesnėsXSLT transformacijų kalbos dalis.

XPath sukūrėWorld Wide Web Consortium (W3C) 1999 m.[1]

Kelio aprašas

[redaguoti |redaguoti vikitekstą]

XPath užklausa vykdoma, vieną XML dokumento mazgą laikant užklausoskontekstu.

XPath išraišką sudaro:

  • Ašis, nurodanti išrenkamų mazgų santykį su konteksto mazgu.
  • Mazgų testas.
  • Predikatai, ribojantys išrenkamų mazgų aibę.

XPath ašis apibrėžia aibę mazgų, susijusių su konteksto mazgu. Kiekvienos ašies mazgų aibė yra vieno tipo: elementų, atributų arba vardų srities.XPath egzistuoja tokios ašys:

  • child – aibė elementų, kurių tėvas yra konteksto mazgas.
  • descendant – aibė elementų, kurių tėvas, tėvo tėvas ir t. t. yra konteksto mazgas.
  • parent – elementas, kuris yra konteksto mazgo tėvas.
  • ancestor – aibė elementų: konteksto mazgo tėvas, tėvo tėvas ir t. t.
  • following - sibling – aibė po konteksto mazgo einančių elementų, kurių tėvas tas pats kaip ir konteksto mazgo.
  • preceding - sibling – aibė prieš konteksto mazgą einančių elementų, kurių tėvas tas pats kaip ir konteksto mazgo.
  • following – aibė elementų, esančių po konteksto mazgo.
  • preceding – aibė elementų, esančių prieš konteksto mazgą.
  • attribute – aibė konteksto mazgo atributų.
  • namespace – aibė vardų sričių mazgų, susietų su konteksto mazgu.
  • self – konteksto mazgas.
  • descendent - or - selfself irdescendent elementųsąjunga.
  • ancestor - or - selfself irancestor elementų sąjunga.

Mazgų testas gali pagal pavadinimą, vardų sritį, ir tipą apriboti išrenkamus mazgus.

Predikatai gali apriboti išrenkamą mazgų aibę pagal nurodytus požymius (pavyzdžiui, išrinkti tik antrąjį elementą)

Trumpesnė sintaksė

[redaguoti |redaguoti vikitekstą]
IšraiškaSinonimasPastabos
child::node()*
child::nodenode
descendant::node().//*
descendant::node()//*Tik kai konteksto mazgas yra šaknis
parent::node()..
attribute::node()@*
self::node().

Vartojimo pavyzdys

[redaguoti |redaguoti vikitekstą]
<?xml version="1.0" encoding="utf-8" ?><?xml-stylesheet href="test.xsl" type="text/xsl" ?><straipsnis xml:id="1" xmlns="http://lt.wikipedia.org/wiki/XPath#Vartojimo_pavyzdys" data="2006-11-06">  <pavadinimas xml:id="2">XPath</pavadinimas>  <skyrius xml:id="3" pavadinimas="Kelio aprašas">    <skyrius xml:id="4" pavadinimas="Ašys" >      <sąrašas xml:id="5" />    </skyrius>    <skyrius xml:id="6" pavadinimas="Mazgų testas" />    <skyrius xml:id="7" pavadinimas="Predikatai" />  </skyrius>  <skyrius xml:id="8" pavadinimas="Pavyzdys" />  <skyrius xml:id="9" pavadinimas="Sąvokos" />  <skyrius xml:id="10" pavadinimas="Funkcijos" />  <literatūra>  </literatūra></straipsnis>

Konteksto mazgo id yra '3':

  • child::*/@xml: id rezultatas yra {'4', '6', '7'}.
  • descendant::*/@xml: id rezultatas yra {'4', '5', '6', '7'}.
  • descendant - or - self::*/@xml: id rezultatas yra {'3', '4', '5', '6', '7'}.
  • parent::*/@xml: id rezultatas yra {'1'}.
  • namespace::* rezultatas yra { 'http://lt.wikipedia.org/wiki/XPath#Vartojimo_pavyzdys', 'http://www.w3.org/XML/1998/namespace' }.
  • self::* rezultatas yra {3}.

Konteksto mazgo id yra '8':

  • following - sibling::*/@xml: id rezultatas yra {'9', '10'}.
  • preceding - sibling::*/@xml: id rezultatas yra {'2', '3'}.
  • following::*/@xml: id rezultatas yra {'9', '10'}.
  • preceding::*/@xml: id rezultatas yra {'2', '3', '4', '5', '6', '7'}.

Konteksto mazgo id yra '4':

  • ancestor::*/@xml: id rezultatas yra {'1', '3'}.
  • ancestor - or - self::*/@xml: id rezultatas yra {'1', '3', '4'}.

Konteksto mazgo id yra '1':

  • attribute::* rezultatas yra {'2006-11-06'}.

„Sveikas pasauli“ pavyzdys

[redaguoti |redaguoti vikitekstą]

XML dokumentui

<vietos>  <vieta vardas="dangus" būsena="a"/>  <vieta vardas="pasaulis" būsena="sveikas"/>  <vieta vardas="pragaras" būsena="b"/></vietos>

XPath takas

/vietos/vieta[@vardas="pasaulis"]/@būsena

turi grąžinti tekstą „sveikas“ (paieška pagal atributo reikšmę)

XPath takas

/vietos/vieta[2]/@būsena

irgi turi grąžinti tekstą „sveikas“ (indeksavimas).

Sąvokos

[redaguoti |redaguoti vikitekstą]

XPath išraiškos konceptualiai vykdomos XML dokumente kaip medyje.XPath specifikacijoje apibrėžti 7 mazgų tipai:

  • Šaknis – dokumento medžio šaknis (žymimas „/“). Ji būtinai turi vieną vaiką – elementą (dokumento elementą) ir gali turėti šiuos vaikus: komentarus, vykdymo instrukcijas (esančias prieš ir po dokumento elemento).
  • Elementas – bet kuris iš XML elementų. Jis gali turėti šiuos vaikus: elementus, komentarus, vykdymo instrukcijas, tekstus.
  • Tekstas – mazgas, priklausantis elementui; jame įrašytas tekstas.
  • Atributas priklauso vienam iš elementų. Šio mazgo tėvinis mazgas yra elementas, tačiau atributas nėra elemento vaikas.
  • Vardų sritys yra susietos su elementais. Vardų srities tėvinis mazgas yra elementas, tačiau vardų srities mazgas nėra elemento vaikas.
  • Vykdymo instrukcija (pavyzdžiui,<?xml-stylesheet href="style.css" type="text/css"?>).
  • Komentaras.

Funkcijos

[redaguoti |redaguoti vikitekstą]

XPath išraiškose gali būti naudojamos šios funkcijos:

  • skaičiuslast()
    • Grąžina nagrinėjamos mazgų aibės mazgų skaičių.
  • skaičiusposition()
    • Grąžina nagrinėjamo mazgo eilės numerį aibėje.
  • skaičiuscount(mazgų aibė)
    • Grąžina mazgų aibės mazgų skaičių.
  • mazgų aibėid(objektas)
    • Grąžina mazgų aibę su nurodyta(-omis)id atributų reikšmėmis.

Literatūra

[redaguoti |redaguoti vikitekstą]
  1. XPath standarto tinklalapis(angl.)
  2. XPath vadovėlisArchyvuota kopija 2012-11-26 išWayback Machine projekto.(angl.)
  3. XPath vadovėlis(vok.)
  4. XSLT ir XPath nuorodaArchyvuota kopija 2010-10-30 išWayback Machine projekto.(vok.)

Šaltiniai

[redaguoti |redaguoti vikitekstą]
  1. „XML and Semantic Web W3C Standards Timeline“(PDF). 2012-02-04. Suarchyvuotasoriginalas(PDF) 2013-04-24. Nuoroda tikrinta2024-09-11.
Rodomas puslapis "https://lt.wikipedia.org/w/index.php?title=XPath&oldid=7456008"
Kategorija:
Paslėpta kategorija:

[8]ページ先頭

©2009-2026 Movatter.jp