Zum Inhalt springen

XPath-Tester

XPath Tester

Wertet einen XPath- oder CSS-Selektor gegen XML oder HTML aus und listet jeden passenden Knoten auf.

Führt einen XPath-1.0-Ausdruck oder einen CSS-Selektor gegen ein XML- oder HTML-Dokument aus und zeigt jeden getroffenen Knoten mit dem absoluten Pfad zu ihm. Ausgewertet wird vom Browser selbst, sodass das, was Sie hier sehen, das ist, was `document.evaluate` in Ihrem Code tun wird.

🔒 Läuft vollständig in Ihrem Browserxpathxmlselectortest

XPath-1.0-Ausdruck

Abfragesprache

Dokument

Lesen als

Datei ablegen

Wird nur in diesem Tab gelesen.

Ergebnisse

Die Ergebnisse erscheinen hier, während Sie tippen.

Wie es läuft

  • · Ausgewertet wird mit document.evaluate (XPath 1.0) und querySelectorAll des Browsers selbst. Die Ergebnistypisierung — Knotenmenge, Zahl, Zeichenkette, Boolean —, der absolute Pfad jedes Knotens und die Behandlung der Namensraum-Präfixe stammen von diesem Werkzeug.
  • · Der XML-Modus liest streng und meldet, was falsch ist; der HTML-Modus liest großzügig, so wie ein Browser. HTML normalisiert Tag-Namen auf Kleinbuchstaben, deshalb geht //DIV nicht und //div schon.
  • · In einem Dokument mit einem Standard-Namensraum (xmlns="…") trifft ein Name ohne Präfix nichts — das ist die Regel von XPath 1.0. Nehmen Sie das Präfix _ wie in //_:item.
  • · Die Funktionen von XPath 2.0 und 3.x (matches, ends-with, lower-case) gibt es in keinem Browser. contains·starts-with·translate·normalize-space sind das, was 1.0 hergibt.
  • · Das Dokument wird nur in diesem Tab gelesen und nirgendwohin hochgeladen.

Für JSON ist der JSONPath-Tester oder das jq-Playground das richtige Werkzeug.

So funktioniert es

  1. Wählen Sie, wie das Dokument gelesen wird

    Der XML-Modus ist strikt und meldet, was fehlerhaft ist. Der HTML-Modus ist nachsichtig, wie ein Browser es ist, und normalisiert Tag-Namen zu Kleinbuchstaben.

  2. Schreiben Sie den Ausdruck

    XPath oder ein CSS-Selektor – der Schalter wechselt zwischen beiden. Die Beispielschaltflächen decken Attribute, Prädikate, Namespaces, Kommentarknoten und die skalar zurückgebenden Funktionen ab.

  3. Lesen Sie zuerst den Ergebnistyp

    XPath liefert vier Arten von Dingen, und nur eine davon ist eine Knotenmenge. `count()`, `string()` und `boolean()` geben Ihnen einen einzelnen Wert, der für sich angezeigt wird statt als leere Trefferliste.

Häufige Fragen

Mein Ausdruck trifft nichts, und das Dokument sieht in Ordnung aus.

Mit ziemlicher Sicherheit ein Standard-Namespace. Wenn das Dokument `xmlns="…"` an seiner Wurzel hat, sagt XPath 1.0, dass ein Name ohne Präfix überhaupt nichts trifft – Sie müssen ein Präfix binden. Hier ist dieses Präfix `_`, sodass aus `//item` ein `//_:item` wird.

Warum gibt es `matches()` nicht?

Weil Browser nur XPath 1.0 implementieren. `matches`, `ends-with`, `lower-case` und die übrigen kamen mit 2.0, und kein Browser hat es. Der 1.0-Werkzeugkasten ist `contains`, `starts-with`, `translate` und `normalize-space`.

XPath oder CSS – was soll ich verwenden?

CSS ist kürzer und reicht für das meiste Scraping. XPath kann nach oben laufen (`..`, `ancestor::`), auf Textinhalt passen und Zahlen und Strings zurückgeben, nichts davon kann ein Selektor. Diese Seite führt beide aus, damit Sie sie am selben Dokument vergleichen können.

Ruft es eine Seite für mich ab?

Nein. Sie fügen das Dokument ein oder legen es ab, und es wird in diesem Tab gelesen. Abrufen bräuchte einen Proxy – der Browser lässt eine Seite keinen anderen Origin lesen –, und dieser Proxy würde alles sehen, was Sie getestet haben.

Eingabe aus

Danach

Diese Tools nehmen an, was dieses hier erzeugt, das Ergebnis kann also direkt weiter.