HTML mit XPath abfragen in Javascript



Aus Wikipedia lernen wir über XPath:

Die XML Path Language (XPath) ist eine vom W3-Konsortium entwickelte Abfragesprache, um Teile eines XML-Dokumentes zu adressieren. XPath dient als Grundlage einer Reihe weiterer Standards wie XSLT, XPointer und XQuery. Seit ihrer Verabschiedung am 23. Januar 2007 hat XPath 2.0 die seit 1999 gültige Version XPath 1.0 abgelöst. XPath 2.0 hat einige Konzepte von XPath 1.0 neu definiert und verfügt zudem über einen wesentlich erweiterten Funktionsumfang, wie beispielsweise die Unterstützung regulärer Ausdrücke oder Volltextsuche in Textknoten.

Prinzipien

Ein XPath-Ausdruck adressiert Teile eines XML-Dokuments, das dabei als Baum betrachtet wird, wobei einige Unterschiede zum „klassischen“ Baum der Graphentheorie zu beachten sind:


Ein XPath-Ausdruck setzt sich aus einem oder mehreren Lokalisierungsschritten (Location Steps) zusammen. Sie werden mit dem Zeichen "/" getrennt.

Ein Lokalisierungsschritt axis::node-test[predicate 1][predicate 2]... besteht aus:


Beliebig viele XPath-Ausdrücke lassen sich mit dem Pipe-Zeichen   |   mengenmäßig vereinigen.

Es gibt stets verschiedene Möglichkeiten, eine gesuchte Knotenmenge in XPath auszudrücken.

XPath operiert auf der logischen Dokumentenstruktur. Das bedeutet zum Beispiel, dass man Entitäten schon geparst vorfindet oder dass auch eventuelle Standard-Attribute und -Knoten, die durch ein Schema vorgegeben werden, schon im Baum enthalten sind.

Achsen

Durch Angabe von Achsen wird ausgehend vom aktuellen Kontextknoten in der Baumstruktur des XML-Dokuments navigiert.

Wird dabei von der Wurzel des XML-Dokuments ausgegangen, wird dem XPath-Ausdruck das Zeichen / vorangestellt.

Dieser Baum visualisiert beispielhaft die Struktur eines XML Dokument

          A         
         _|_        
        |   |       
        B   L       
      __|________   
     |   |   |   |  
     C  (D)  H   I  
        _|_     _|_ 
       |   |   |   |
       E   G   J   K
       |            
       F            
  
  

Die fünf Achsen self, ancestor, descendant, preceding und following bilden ausgehend von einem beliebigen Knoten den Dokumentbaum vollständig und überlappungsfrei ab.

Knotentests

Knotentests (geschrieben Achse::Knotentest) schränken die Elementauswahl einer Achse ein:

Prädikate

Durch Angabe von Prädikaten kann das Ergebnis weiter eingeschränkt werden. Prädikate werden in eckige Klammern eingeschlossen und können in beliebiger Zahl hintereinander geschrieben werden, wobei die Reihenfolge wesentlich ist. Prädikate können XPath-Ausdrücke enthalten, außerdem kann eine Vielzahl von Funktionen verwendet werden. Die sind zum Beispiel:

Beispiele:

(das gleiche leistet //Buch[count(Seite)<=100 and count(Seite)>=10])

Beispiel

Gegeben sei folgendes XML-Dokument:

Beispiele für XPath-Ausdrücke:

XPath-Visualisierer helfen, die mitunter komplizierten XPath-Abfragen auf konkrete XML-Dateien anzuwenden.

Siehe auch

Einzelnachweise

  1. ↑ http://www.w3.org/TR/xpath#axes

Literatur

Weblinks