So testen Sie einen XPath-Ausdruck
- Fügen Sie Ihr XML ein, öffnen Sie eine Datei oder verwenden Sie den Beispiel-Produktkatalog.
- Geben Sie einen XPath-Ausdruck ein oder klicken Sie auf eines der Beispiele. Das Ergebnis aktualisiert sich beim Tippen, und Enter wertet den Ausdruck sofort aus.
- Lesen Sie das Ergebnis ab: die Anzahl der passenden Knoten mit Typ und Inhalt oder die Zahl, die Zeichenkette bzw. den booleschen Wert, den der Ausdruck zurückgibt.
XPath Cheat Sheet: die wichtigsten Ausdrücke
| Ausdruck | Ergebnis |
|---|---|
/catalog | Das Wurzelelement catalog |
//product | Jedes product-Element in beliebiger Tiefe |
/catalog/product/name | Das Element name jedes Produkts, Schritt für Schritt ab der Wurzel |
//product/@id | Das Attribut id jedes Produkts |
//product[@category='books'] | Produkte, deren Attribut category den Wert books hat |
//product[price > 20] | Produkte mit einem Preis über 20, numerisch verglichen |
//product[contains(name, 'USB')] | Produkte, deren Name „USB“ enthält (Groß-/Kleinschreibung wird beachtet) |
//product[not(tags)] | Produkte ohne Kindelement tags |
(//product)[1] | Das erste Produkt im Dokument |
//product[1] | Das erste Produkt innerhalb jedes Elternelements |
//product[last()] | Das letzte Produkt innerhalb jedes Elternelements |
//name/text() | Die Textknoten innerhalb von name |
//price/.. | Das Elternelement jedes price-Elements |
//*[local-name()='product'] | product-Elemente in beliebigem Namespace |
count(//product) | Die Anzahl der Produkte |
sum(//price) | Die Summe aller Preise |
string(//product[1]/name) | Der Name des ersten Produkts als Zeichenkette |
Namespaces in XPath
XPath 1.0 kennt keinen Standard-Namespace. In einem Dokument mit xmlns="…", etwa einer Sitemap oder einer NF-e-Rechnung, findet //url nichts, weil die Elemente zu diesem Namespace gehören. Der Tester ordnet den Standard-Namespace daher dem Präfix x: zu (oder d:, falls x bereits vergeben ist), sodass //x:url/x:loc funktioniert. Im Dokument deklarierte Präfixe, etwa cfdi: in einer CFDI-Rechnung, können Sie unverändert verwenden. In Tools ohne Namespace-Konfiguration funktioniert //*[local-name()='url'] überall.
Häufig gestellte Fragen
Welche XPath-Version unterstützt der Tester?
XPath 1.0 – die Version, die in jeden Browser und die meisten XML-Bibliotheken integriert ist. Funktionen aus XPath 2.0 und neuer, etwa matches(), lower-case() oder string-join(), stehen nicht zur Verfügung.
Warum liefert mein XPath kein Ergebnis?
Die häufigsten Ursachen sind ein Standard-Namespace (verwenden Sie das unter den Beispielen angezeigte Präfix x:), abweichende Groß- und Kleinschreibung – XPath unterscheidet sie – sowie Positionen, die bei 1 beginnen, nicht bei 0.
Wie viele Ergebnisse werden angezeigt?
Alle Treffer werden gezählt, und die ersten 500 werden mit Knotentyp und Inhalt aufgelistet.
Wird mein XML hochgeladen?
Nein. Das XML wird in Ihrem Browser geparst und abgefragt. Nur eine URL, die Sie laden, wird über unseren Server abgerufen.