Wie teste ich einen XPath-Ausdruck?
Fügen Sie Ihr XML links ein oder ziehen Sie eine Datei darauf. Geben Sie einen Ausdruck in das Feld „XPath“ ein und drücken Sie Enter oder klicken Sie auf „Auswerten“. Jeder gefundene Knoten erscheint mit seiner Art, einem kurzen Pfad wie /catalog/book[2]/title, seiner Zeile und seinem Inhalt. „In der Eingabe zeigen“ markiert diesen Knoten in Ihrem XML. Eine Funktion wie count() liefert stattdessen eine Zahl, die im Ergebnis erscheint. „Kopieren“ und „Herunterladen“ geben das Ergebnis als reinen Text aus. „Beispiel laden“ öffnet einen Buchkatalog, mit dem Sie sofort loslegen können.
Warum liefert mein Ausdruck nichts?
In neun von zehn Fällen liegt es an einem Namespace. Hat das Wurzelelement xmlns="…", gehört jedes Element ohne Präfix zu diesem Standard-Namespace, und ein einfaches //book findet es nicht mehr. Dieser Tester gibt dem Standard-Namespace ein Präfix, d, sofern Sie unter „Namespaces“ kein anderes wählen, und schlägt den korrigierten Ausdruck vor, wenn er das Problem erkennt. Weitere häufige Ursachen: ein Tippfehler in einem Namen, denn XML unterscheidet Groß- und Kleinschreibung, oder ein fehlendes @ vor einem Attribut.
Beispiele für Ausdrücke zum Ausprobieren
//book/title listet jeden Titel auf. //book[@lang='en'] behält die Bücher, deren Attribut lang den Wert en hat. count(//book) zählt sie, und sum(//price) addiert die Preise. //title[contains(., 'Dark')] findet Titel, die ein Wort enthalten, und //book[last()] nimmt das letzte Buch. Um ein Attribut selbst auszuwählen, schreiben Sie //book/@id. Der Test text() liefert Textknoten, string() dagegen den gesamten Text eines Elements.
Welche XPath-Version unterstützt dieser XPath-Tester?
XPath 1.0, die Version, die in jeden Browser eingebaut ist, mit ihren 27 Funktionen. XPath 2.0 und 3.1 werden nicht unterstützt. Für lower-case(), matches() oder if … then … else erhalten Sie deshalb eine klare Meldung, oft mit einer Alternative für 1.0. Dieselben Ausdrücke funktionieren in einem XSLT-1.0-Stylesheet: Probieren Sie sie im XSLT-Tester aus. Hat Ihr XML einen Syntaxfehler, zeigt der Tester zuerst dessen Zeile, wie der XML-Validator.
Lädt dieses Tool mein XML hoch?
Nein. Der Ausdruck wird in diesem Browser-Tab ausgewertet, und die Sicherheitsregeln dieser Seite blockieren Netzwerkanfragen. Nichts wird gespeichert: Schließen Sie den Tab, und Ihr XML ist weg. Um eine lange einzeilige Datei zuerst lesbar zu machen, nutzen Sie den XML-Formatter.
Fragen
Warum findet //book nichts, obwohl mein XML book-Elemente enthält?
Ihr XML hat wahrscheinlich einen Standard-Namespace, geschrieben als xmlns="…" am Wurzelelement. In XPath 1.0 passt ein Name ohne Präfix nur auf Elemente ohne Namespace. Dieser Tester gibt dem Standard-Namespace ein Präfix, standardmäßig d, schreiben Sie also //d:book.
Kann ich Funktionen aus XPath 2.0 oder 3.1 verwenden?
Nein. Browser bringen XPath 1.0 mit, und dieser Tester nutzt die Engine des Browsers. Funktionen wie lower-case() oder matches() führen zu einer klaren Meldung, oft mit einem Weg, in XPath 1.0 zum selben Ergebnis zu kommen.
Was ist der Unterschied zwischen text() und string()?
text() wählt die Textknoten direkt in einem Element aus, Sie erhalten also Knoten zurück. string() gibt den Text des gesamten Elements samt Kindelementen als einen einzigen Wert zurück.
Wie zähle oder filtere ich Knoten?
count(//item) liefert eine Zahl. //item[contains(@name, 'pro')] behält die Einträge, deren Name pro enthält. //item[position() <= 3] behält die ersten drei und //item[last()] den letzten.
Wie groß darf mein XML sein?
Bis zu 10 MB. Die Liste zeigt die ersten 500 Treffer, und „Kopieren“ oder „Herunterladen“ geben alle als reinen Text aus.
Wird mein XML irgendwohin gesendet?
Nein. Der Ausdruck wird in diesem Browser-Tab ausgewertet, und die Seite darf keine Netzwerkanfragen senden. Schließen Sie den Tab, und Ihr XML ist weg.