Über dieses Tool
SOAP-Responses, Sitemaps, Maven-POMs und JUnit-XML-Reports sind in einer einzigen Zeile kaum lesbar. Dieser Formatter prüft zuerst mit dem XML-Parser des Browsers, ob die Eingabe wohlgeformt ist, und rückt sie dann mit einem Tokenizer neu ein, der CDATA-Abschnitte, Kommentare, Processing Instructions und den DOCTYPE exakt so belässt, wie sie geschrieben wurden. Elemente, die nur Text enthalten, bleiben in einer Zeile, sodass die Ausgabe wie handgeschriebenes XML aussieht statt wie ein Tag pro Zeile.
So funktioniert es
- Fügen Sie XML ein oder laden Sie das Beispiel-Bestelldokument.
- Wählen Sie „Format“ und eine Einrückung (2 Leerzeichen, 4 Leerzeichen oder Tab) oder „Minify“, um alles in eine Zeile zu bringen.
- Ist das XML nicht wohlgeformt, korrigieren Sie die im roten Banner angezeigte Zeile und Spalte.
- Kopieren oder laden Sie das Ergebnis herunter.
Wohlgeformt ist nicht dasselbe wie gültig
Wohlgeformtes XML hält die Syntaxregeln ein: genau ein Wurzelelement, jedes Tag geschlossen und korrekt verschachtelt, Attributwerte in Anführungszeichen und Sonderzeichen escaped. Gültiges XML ist zusätzlich konform zu einem Schema (XSD) oder einer DTD, die festlegt, welche Elemente und Werte erlaubt sind. Dieser Formatter prüft die Wohlgeformtheit, weil sich das Dokument parsen lassen muss, bevor es neu eingerückt werden kann. Die Prüfung gegen eine XSD ist ein separater Schritt.
Häufige Gründe, warum sich XML nicht parsen lässt
- Ein nicht escaptes kaufmännisches Und oder Kleiner-als-Zeichen im Text: Schreiben Sie
&und<oder setzen Sie den Text in einen CDATA-Abschnitt. - Tags, die sich nur in der Groß-/Kleinschreibung unterscheiden, etwa
<Order>…</order>: XML unterscheidet Groß- und Kleinschreibung. - Mehr als ein Element auf oberster Ebene: Fassen Sie sie in einem einzigen Wurzelelement zusammen.
- Ein Attributwert ohne Anführungszeichen, etwa
<item id=7>. - Ein Namespace-Präfix ohne Deklaration, etwa
<soap:Envelope>ohne Attributxmlns:soap="…". - Irgendetwas vor der XML-Deklaration:
<?xml version="1.0"?>muss ganz am Anfang stehen, ohne Whitespace davor.
Wo Tester auf XML treffen
SOAP- und ältere Enterprise-APIs, JUnit-XML-Testreports (das Format, das die meisten CI-Server lesen), Maven-pom.xml-Dateien, Sitemaps, RSS-Feeds und Android-Layouts sind alle XML. Playwright schreibt JUnit-XML mit reporter: [['junit', { outputFile: 'results.xml' }]], und diese Datei zu formatieren ist der schnellste Weg herauszufinden, warum die CI einen Test als fehlgeschlagen gewertet hat.
Für Assertions auf XML im Code unterstützt REST Assured XPath-Matcher wie body(hasXPath("/order/status[text()='SHIPPED']")). Auf der Kommandozeile formatiert xmllint --format file.xml eine Datei, und in Python leistet xml.dom.minidom.parseString(text).toprettyxml() dasselbe im Skript. Um XPath-Ausdrücke interaktiv auszuprobieren, nutzen Sie den XPath & CSS Selector Tester.
FAQ zu XML Formatter
Verändert das Formatieren meine Daten?
Reiner Whitespace-Text zwischen Tags wird entfernt und als Einrückung neu erzeugt, und Text innerhalb von Elementen wird getrimmt. Für datenorientiertes XML ist das unproblematisch. Bei Mixed Content oder Elementen, bei denen xml:space="preserve" wichtig ist, vergleichen Sie das Ergebnis, bevor Sie es verwenden.
Bleiben CDATA-Abschnitte und Kommentare erhalten?
Ja. Sie werden Byte für Byte übernommen, einschließlich Markup innerhalb von CDATA. Im Modus „Minify“ können Sie Kommentare optional entfernen.