XPath ist eine Technologie, die die erforderlichen Informationen aus Baumstrukturdaten wie HTML und XML genau und effizient spezifiziert und extrahiert.
XPath Überblick
XPath ist eine Sprache, die verwendet wird, um bestimmte Elemente und Attribute in einem XML- oder HTML-Dokumentbaum zu spezifizieren und zu extrahieren. Da Webseiten oft aus HTML bestehen, wird XPath in verschiedenen Szenarien häufig verwendet, wie Webscraping, Datenabruf und XML-Datensuche.
Die typische Verwendung ist wie folgt:
- Datenextraktion in Webcrawlern: XPath wird verwendet, um automatisch spezifische Daten abzurufen, wie Produktinformationen auf E-Commerce-Websites oder Artikeltitel auf Nachrichtenseiten.
- XML-Datensuche und -verarbeitung: In Geschäftssystemen und der Datenlinkverarbeitung werden Daten häufig im XML-Format ausgetauscht. Mit XPath können Sie die notwendigen Informationen effizient aus großen Mengen XML-Daten extrahieren.
- API-Antworten (XML-Format): Bei der Verwendung von XML-basierten APIs wie SOAP wird XPath zur Analyse von Antwortdaten verwendet. So können Sie schnell spezifische Statuscodes und Ergebnisdaten erhalten, was die Genauigkeit der Systemintegration und automatisierten Verarbeitung verbessert.
Werkzeugempfehlung
Im Prozess des Lernens und der Nutzung von XPath gehören zu den gängigen Tools:
Chrome Developer Tools: Ein leistungsstarkes Tool, das mit dem Chrome-Browser geliefert wird und man es mit Drücken der F12-Taste aufrufen kann. Im Panel "Elemente" können Sie HTML-Elemente auf einer Webseite schnell finden, indem Sie mit der Maus fahren und klicken, und mit Rechtsklick auf ein Element können Sie den XPath-Ausdruck direkt kopieren, um eine einfache Verifizierung und Prüfung zu gewährleisten. Zum Beispiel können Sie bei der Analyse einer E-Commerce-Produktseite Chrome-Entwicklertools verwenden, um XPath schnell für Produktnamen, Preise und andere Elemente zu erhalten. Firefox Developer Tools: Wird ebenfalls mit dem Browser geliefert, ähnlich wie Chrome Developer Tools. Es ermöglicht Ihnen außerdem, Elemente auf Ihrer Seite leicht zu finden sowie XPath-Ausdrücke anzusehen und zu testen. Das ist eine gute Option für Entwickler, die an den Firefox-Browser gewöhnt sind. Online-XPath-Testtools: Online-Tools wie "XPath Tester" können ohne Installation verwendet werden und durch das Öffnen einer Webseite genutzt werden. Fügen Sie einfach den Inhalt eines XML- oder HTML-Dokuments ein, geben Sie einen XPath-Ausdruck ein und sehen Sie die Übereinstimmungsergebnisse in Echtzeit. Dieses Tool eignet sich besonders gut für Anfänger, um schnell loszulegen und einfache XPath-Übungen zu machen. XPath Helper Plugin: Nehmen wir den Chrome Browser als Beispiel: Nach der Installation des XPath Helper-Plugins fügt es beim Surfen im Web ein schwebendes Fenster zur Browseroberfläche hinzu, das den XPath-Pfad des aktuellen Mouse-Over-Elements anzeigt, und man kann XPath-Ausdrücke direkt im Fenster bearbeiten und testen, was die Entwicklungseffizienz erheblich verbessert.
XPath Abstrakte Syntax
Einen Knoten auswählen
XPath verwendet Pfadausdrücke, um Knoten in einem XML-Dokument auszuwählen. Knoten werden ausgewählt, indem man einem Pfad oder Schritt folgt. Die nützlichsten Pfadausdrücke sind unten aufgeführt:
Ausdruck | Beschreibung | | Knotenname | Wählt alle Kindknoten dieses Knotens aus. | | / | Wähle aus dem Wurzelknoten (nimm den Kindknoten). | | // | Wählt Knoten im Dokument aus dem aktuellen Knoten der passenden Auswahl aus, unabhängig von deren Standort (nehmen Sie Nachfolge-Knoten). | | . | Wähle den aktuellen Knoten. | | .. | Wählen Sie den übergeordneten Knoten des aktuellen Knotens. | | @ | Wähle ein Attribut. |
In der untenstehenden Tabelle haben wir einige Pfadausdrücke zusammen mit den Ergebnissen der Ausdrücke aufgelistet:
Pfadausdrücke | Ergebnis | | Buchhandlung | Wähle alle Knoten namens Buchhandlung. | | /bookstore | Wählen Sie die Root-Element-Buchhandlung. Hinweis: Wenn der Pfad mit einem Vorwärtsschrägstrich beginnt ( / ), dann stellt dieser Pfad immer einen absoluten Pfad zu einem Element dar! | | Buchhandlung/Buch | Wählt alle Buchelemente aus, die kindliche Elemente des Buchladens sind. | | //book | Wählt alle Buchunterelemente aus, unabhängig von ihrer Position im Dokument. | | Buchhandlung//Buch | Wählen Sie alle Buchelemente aus, die Nachkommen des Buchhandlungselements sind, unabhängig davon, wo sie sich unter der Buchhandlung befinden. | | @lang | Wählen Sie alle Eigenschaften namens lang. |
Prädikate
Ein Prädikat wird verwendet, um einen bestimmten Knoten oder einen Knoten mit einem bestimmten Wert zu finden. Das Prädikat ist in eckigen Klammern eingebettet. In der untenstehenden Tabelle listen wir einige Pfadausdrücke mit Prädikaten sowie die Ergebnisse der Ausdrücke auf:
Pfadausdrücke | Ergebnis | | /bookstore/book[1] | Wählen Sie das erste Buchelement, das Teil des Buchladen-Kind-Elements ist. | | /bookstore/book[last()] | Wählt das letzte Buchelement, das zum Buchladen-Subelement gehört. | | /bookstore/book[last()-1] | Wählt das vorletzte Buchelement, das zum Buchladen-Kinder-Element gehört. | | /bookstore/book[position()<3] | Wählen Sie die ersten beiden Buchelemente, die kindliche Elemente des Buchhandlungselements sind. | | Titel[@lang] | Wählt alle Titelelemente aus, die eine Eigenschaft namens lang haben. | | titel[@lang='eng'] | Wählt alle Titelelemente aus, die ein lang-Attribut mit einem eng-Wert haben. | | /bookstore/book[price>35.00] | Wählt alle Buchelemente des Buchhandlungselements, und der Wert des Preiselements muss über 35,00 liegen. | | /bookstore/book[price>35.00]//title | Wählt alle Titelelemente des Buchelements im Buchladen-Element, und der Wert des Preiselements muss mehr als 35,00 betragen. |
Wählen Sie einen unbekannten Knoten aus
XPath-Wildcards können verwendet werden, um unbekannte XML-Elemente zu erkennen.
Platzhalter | Beschreibung | | * | Entspricht jedem Elementknoten. | | @* | Passt zu jedem Attributknoten. | | node() | Passt zu jedem Knotentyp. |
In der untenstehenden Tabelle listen wir einige Pfadausdrücke und die Ergebnisse dieser Ausdrücke auf:
Pfadausdrücke | Ergebnis | | /bookstore/* | Wählt alle Kind-Elemente des Buchladen-Elements aus. | | //* | Wählt alle Elemente des Dokuments aus. | | Titel[@*] | Wählt alle Titelelemente mit Attributen aus. |
Wählen Sie mehrere Wege
Durch die Verwendung von "|" im Pfadausdruck Operatoren, ihr könnt mehrere Wege wählen.
In der untenstehenden Tabelle listen wir einige Pfadausdrücke und die Ergebnisse dieser Ausdrücke auf:
Pfadausdrücke | Ergebnis | | //book/title | //book/price | Wählt alle Titel- und Preiselemente des Buchelements aus. | | Titel | Preis | Wählen Sie alle Titel- und Preiselemente im Dokument. | | /bookstore/book/title | //price | Wählt alle Titelelemente des Buchelements aus, die zum Buchladen-Element gehören, sowie alle Preiselemente im Dokument. |
XPath-Funktion
Im Folgenden findet sich eine kommentierte Liste XPath-spezifischer Ergänzungen zu XPath nach Kernfunktionen von XPath und XSLT, einschließlich Beschreibungen, Syntax, Parameterlisten, Ergebnistypen und Quellen in den entsprechenden W3C-Empfehlungen.
- Boolean()
- Decke()
- choose()
- Concat()
- enthält()
- count()
- aktuell() XSLT-spezifisch
- document() XSLT-spezifisch
- element-verfügbar()
- false()
- floor()
- format-number() XSLT-spezifisch
- funktion-verfügbar()
- generate-id() XSLT-spezifisch
- id()
- key() XSLT-spezifisch
- lang()
- last()
- local-name()
- name()
- namespace-uri()
- normalize-space()
- nicht()
- number()
- Position()
- rund()
- beginnt-mit()
- string()
- String-length()
- Substring()
- Substring-after()
- Substring-before()
- summ()
- system-property() XSLT-spezifisch
- übersetzen()
- true()
- unparsed-entity-url() XSLT-spezifisch
Praktische Prüfungen
Öffnen Sie Chrome und erhalten Sie den Textinhalt aller A-Tab-Links mit folgendem Befehl:
Wie unten gezeigt:
Referenz:Der Hyperlink-Login ist sichtbar. |