XML Formatter

XML formatieren und verschönern mit Syntaxhervorhebung

Beispiel ausprobieren

XML-Eingabe

Formatiertes XML

Läuft lokal · Sicher zum Einfügen von Secrets
Formatiertes XML wird hier angezeigt…

Was ist XML-Formatierung?

XML-Formatierung (auch XML Pretty-Printing oder XML-Verschönerung genannt) ist der Prozess, einem XML-Dokument konsistente Einrückungen und Zeilenumbrüche hinzuzufügen, sodass seine hierarchische Struktur sichtbar wird. Rohes XML aus APIs, Konfigurationsgeneratoren oder Serialisierern wird häufig als einzelne Zeile ohne Leerzeichen zwischen den Tags geliefert. Ein XML-Formatter parst das Dokument in einen Baum und serialisiert es anschließend mit vorhersehbaren Abständen neu. Das Ergebnis ist visuell übersichtlich und deutlich leichter zu verstehen, ohne dass der logische Inhalt des Dokuments in irgendeiner Weise verändert wird.

Die XML-1.0-Spezifikation (W3C-Empfehlung, fünfte Ausgabe) definiert eine strenge Grammatik: Jedes öffnende Tag muss ein passendes schließendes Tag haben oder selbstschließend sein, Attribute müssen in Anführungszeichen stehen, und fünf Zeichen (<, >, &, ", ') erfordern Entity-Escaping. Ein Formatter muss diese Regeln einhalten und dabei ausschließlich bedeutungslosen Leerraum einfügen, der den Informationsgehalt des Dokuments (Infoset) nicht verändert.

Formatiertes XML ist einfacher bei Code-Reviews zu lesen, einfacher in der Versionskontrolle zu vergleichen und einfacher zu debuggen, wenn ein Dienst unerwartete Daten zurückgibt. Die Formatierung selbst ist verlustfrei: Der logische Inhalt des Dokuments bleibt identisch, nur die Darstellung ändert sich. Tools wie git diff und Pull-Request-Plattformen zeigen nur geänderte Zeilen — konsistent eingerücktes XML stellt sicher, dass diese Diffs echte Änderungen widerspiegeln und kein Formatierungsrauschen.

Before · xml
After · xml
<catalog><book id="bk101"><author>Gambardella, Matthew</author><title>XML Developer's Guide</title><genre>Computer</genre><price>44.95</price><publish_date>2000-10-01</publish_date></book><book id="bk102"><author>Ralls, Kim</author><title>Midnight Rain</title><genre>Fantasy</genre><price>5.95</price><publish_date>2000-12-16</publish_date></book></catalog>
<catalog>
  <book id="bk101">
    <author>Gambardella, Matthew</author>
    <title>XML Developer's Guide</title>
    <genre>Computer</genre>
    <price>44.95</price>
    <publish_date>2000-10-01</publish_date>
  </book>
  <book id="bk102">
    <author>Ralls, Kim</author>
    <title>Midnight Rain</title>
    <genre>Fantasy</genre>
    <price>5.95</price>
    <publish_date>2000-12-16</publish_date>
  </book>
</catalog>

Warum einen Online-XML-Formatter verwenden?

XML von Hand zu formatieren ist fehleranfällig und langsam, besonders bei Dokumenten mit tiefer Schachtelung oder gemischten Namensräumen. Ein browserbasierer Formatter liefert ein formatiertes Ergebnis in unter einer Sekunde, unabhängig von der Dateigröße. Im Gegensatz zu Desktop-Tools oder CLI-Programmen ist keine Installation erforderlich — der Formatter läuft vollständig im Browser und verarbeitet alle Daten lokal auf Ihrem Gerät.

Sofortiges Pretty-Printing
XML einfügen oder eingeben und sofort eingerückte Ausgabe erhalten. Kein Warten auf die Installation eines CLI-Tools oder einen Build-Schritt.
🔒
Datenschutz an erster Stelle
Das gesamte Parsen und Formatieren erfolgt im Browser über die DOMParser-API. Ihr XML verlässt nie Ihren Rechner und wird nie an einen Server gesendet.
🎨
Konfigurierbare Einrückung
Wählen Sie zwischen 2 Leerzeichen, 4 Leerzeichen oder Tabulatoren als Einrückung, um die Coding-Standards Ihres Projekts zu erfüllen, ohne Konfigurationsdateien bearbeiten zu müssen.
📋
Kein Konto oder Installation erforderlich
Seite öffnen, XML einfügen, Ergebnis kopieren. Keine Anmeldeformulare, keine Desktop-Software, keine Browser-Erweiterungen.

Anwendungsfälle für den XML Formatter

Frontend-Entwicklung
SVG-Markup oder XHTML-Fragmente inspizieren, die ein CMS zurückgibt. Die Formatierung der rohen Ausgabe ermöglicht es, bestimmte Attribute und verschachtelte Gruppen schnell zu finden.
Backend-Entwicklung
SOAP-Antworten, RSS-Feeds oder XML-RPC-Payloads von Drittanbietern debuggen. Die formatierte Ausgabe erlaubt es, fehlende Elemente oder falsche Namensräume nachzuverfolgen.
DevOps und CI/CD
Maven-pom.xml-Dateien, Ant-Build-Skripte oder .csproj-Projektdateien lesen, die maschinell ohne Einrückung generiert wurden. Vor dem Commit formatieren, um Diffs sauber zu halten.
QA und Testing
Erwartete und tatsächliche XML-Payloads in Integrationstests vergleichen. Beide Seiten auf denselben Einrückungsstil zu formatieren eliminiert falsch-negative Ergebnisse durch Leerzeichenunterschiede.
Data Engineering
XML-Exporte aus Datenbanken, ETL-Pipelines oder Open-Data-Portalen von Behörden inspizieren. Formatiertes XML zeigt die Datensatzstruktur, bevor Sie eine XSLT-Transformation oder XPath-Abfrage schreiben.
XML lernen
Studenten, die die W3C-XML-Tutorials durcharbeiten, können Übungsdateien in den Formatter einfügen, um zu prüfen, ob ihre Schachtelung und Attributsyntax korrekt ist.

XML Predefined Entity Reference

XML reserviert fünf Zeichen für seine Syntax. Wenn diese Zeichen als wörtlicher Textinhalt oder in Attributwerten vorkommen, müssen sie durch vordefinierte Entity-Referenzen ersetzt werden. Ein korrekter Formatter bewahrt diese Entities beim Pretty-Printing.

ZeichenRolle in XMLEntity
<Start of tag&lt;
>End of tag&gt;
&Start of entity&amp;
"Attribute delimiter&quot;
'Attribute delimiter&apos;

XML-Einrückungsstile im Vergleich

Es gibt keinen einheitlichen Standard für XML-Einrückung. Die Wahl hängt von den Konventionen des Teams und den Tools in der Pipeline ab. Hier sind die drei häufigsten Stile.

2 Leerzeichen (empfohlen)
Die häufigste Wahl für webbezogenes XML: SVG, XHTML, SOAP, Spring-Konfiguration. Hält tief verschachtelte Dokumente kompakt. Standardmäßig in den meisten Online-Formattern und IDEs verwendet.
4 Leerzeichen
Bevorzugt in Java-Ökosystemen (Maven, Ant, Android-Manifeste), wo Dateien selten mehr als 3–4 Verschachtelungsebenen aufweisen. Entspricht der Standard-Einrückung von Java- und C#-Code.
Tabulatorzeichen
Ermöglicht jedem Entwickler, die visuelle Breite in seinem Editor selbst festzulegen. Verbreitet in Legacy-Projekten und bestimmten Microsoft-Tools (.csproj, .nuspec). Erzeugt kleinere Dateigrößen als Leerzeichen.

Code-Beispiele: XML programmatisch formatieren

Wenn Sie XML in einem Skript oder Build-Prozess formatieren müssen, bietet jede wichtige Programmiersprache eine integrierte oder Standard-Bibliothek. In Python eignet sich das Modul xml.dom.minidom, in Java bietet javax.xml.transform Unterstützung für hübsche Ausgabe, und in Node.js stehen Bibliotheken wie xmldom oder prettier zur Verfügung. Nachfolgend finden Sie funktionierende Beispiele, die Sie direkt kopieren können.

JavaScript (DOM API)
const raw = '<root><item>hello</item></root>'
const parser = new DOMParser()
const doc = parser.parseFromString(raw, 'application/xml')
const serializer = new XMLSerializer()
const xml = serializer.serializeToString(doc)

// Indent with XSLT (browser-native approach)
const xslt = new DOMParser().parseFromString(`
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="node()|@*">
      <xsl:copy><xsl:apply-templates select="node()|@*"/></xsl:copy>
    </xsl:template>
  </xsl:stylesheet>`, 'application/xml')

const proc = new XSLTProcessor()
proc.importStylesheet(xslt)
const formatted = proc.transformToDocument(doc)
console.log(new XMLSerializer().serializeToString(formatted))
// → <root>\n  <item>hello</item>\n</root>
Python
import xml.dom.minidom

raw = '<root><item>hello</item><item>world</item></root>'
dom = xml.dom.minidom.parseString(raw)
print(dom.toprettyxml(indent='  '))
# → <?xml version="1.0" ?>
# → <root>
# →   <item>hello</item>
# →   <item>world</item>
# → </root>

# With lxml (handles namespaces, XSD, large files)
from lxml import etree
tree = etree.fromstring(raw.encode())
print(etree.tostring(tree, pretty_print=True).decode())
Go
package main

import (
    "encoding/xml"
    "fmt"
    "strings"
)

func formatXML(raw string) (string, error) {
    decoder := xml.NewDecoder(strings.NewReader(raw))
    var out strings.Builder
    encoder := xml.NewEncoder(&out)
    encoder.Indent("", "  ")
    for {
        tok, err := decoder.Token()
        if err != nil {
            break
        }
        encoder.EncodeToken(tok)
    }
    encoder.Flush()
    return out.String(), nil
}
// formatXML("<a><b>1</b></a>") → "<a>\n  <b>1</b>\n</a>"
CLI (xmllint)
# Format XML file with xmllint (part of libxml2, pre-installed on macOS/Linux)
xmllint --format input.xml > formatted.xml

# Format from stdin
echo '<a><b>1</b></a>' | xmllint --format -
# → <?xml version="1.0"?>
# → <a>
# →   <b>1</b>
# → </a>

# Validate and format at the same time
xmllint --format --schema schema.xsd input.xml

Häufig gestellte Fragen

Verändert die Formatierung die Bedeutung eines XML-Dokuments?
Nein. XML-Formatierung fügt nur bedeutungslosen Leerraum zwischen Tags hinzu oder entfernt ihn. Das XML Information Set (Infoset) bleibt identisch. Eine Ausnahme: Wenn Ihr Schema xml:space="preserve" für bestimmte Elemente verwendet, sollte ein Formatter diese Elemente unverändert lassen — dieses Tool respektiert das.
Was ist der Unterschied zwischen XML-Formatierung und XML-Validierung?
Formatierung fügt Einrückungen und Zeilenumbrüche hinzu, um XML lesbar zu machen. Validierung prüft, ob das Dokument einem Schema (XSD, DTD oder RelaxNG) entspricht. Ein Dokument kann wohlgeformt, aber gegen sein Schema ungültig sein. Verwenden Sie diesen Formatter für die Lesbarkeit und das XML-Validator-Tool für die Schema-Konformität.
Kann ich XML mit Namensräumen formatieren?
Ja. Der DOMParser des Browsers verarbeitet XML-Namensräume nativ. Namensraum-Präfixe, Standard-Namensraum-Deklarationen (xmlns) und qualifizierte Attributnamen werden bei der Formatierung vollständig erhalten. Der Formatter fügt keine Namensraum-Bindungen hinzu, entfernt oder benennt sie um.
Wie große XML-Dateien kann ich im Browser formatieren?
Browserbasierte Formatierung funktioniert gut für Dokumente bis zu etwa 10 MB. Darüber hinaus verbraucht der DOM-Baum erheblich Speicher, und die Benutzeroberfläche kann träge werden. Für sehr große Dateien empfiehlt sich ein CLI-Tool wie xmllint --format, das XML als Stream verarbeitet.
Warum wird meinem formatierten XML eine XML-Deklaration hinzugefügt?
Manche Formatter fügen beim Serialisieren des DOM-Baums <?xml version="1.0"?> voran. Diese Deklaration ist in XML 1.0 optional, wenn die Kodierung UTF-8 ist. Falls Sie sie nicht wünschen, entfernen Sie einfach die erste Zeile der Ausgabe. Die Deklaration beeinflusst das Parsen durch keinen konformen XML-Prozessor.
Ist XML-Formatierung dasselbe wie XML-Minifizierung?
Es sind entgegengesetzte Operationen. Formatierung fügt Leerraum hinzu, um die Lesbarkeit zu verbessern. Minifizierung entfernt allen nicht wesentlichen Leerraum, um die Dateigröße zu reduzieren. Beide Operationen sind in Bezug auf das XML-Infoset verlustfrei. Wenn Sie XML minifizieren möchten, verwenden Sie das XML Minifier Tool.
Was ist der Unterschied zwischen XML- und HTML-Formatierung?
XML ist streng: Jedes Tag muss geschlossen werden, Attributwerte müssen in Anführungszeichen stehen, und das Dokument muss genau ein Root-Element haben. HTML (insbesondere HTML5) ist tolerant: optionale schließende Tags, Attribute ohne Anführungszeichen und void-Elemente wie &lt;br&gt; sind alle gültig. Ein XML-Formatter weist ungültiges XML zurück, während ein HTML-Formatter Syntax toleriert, die XML nicht erlauben würde.