XML im Terminal formatieren

  Ralf Hersel   Lesezeit: 3 Minuten  🗪 1 Kommentar

Mit xmllint lassen sich unleserliche XML-Dateien schnell und einfach formatieren.

xml im terminal formatieren

Wer mit XML-Dateien arbeitet, hat es oft mit schlecht formatierten Daten zu tun. Diese lassen sich zwar in Editoren oder IDEs umformatieren, wozu meist Plugins benötigt werden. Dies geht jedoch auch im Terminal mit Bordmitteln. Hierzu ein kleines Beispiel. Die Datei note.xml enthält unformatiertes XML:

Dies lässt sich mit dem Werkzeug xmllint ändern. Das Programm analysiert eine oder mehrere XML-Dateien, die auf der Befehlszeile als XML-FILE angegeben sind (oder die Standardeingabe, wenn der angegebene Dateiname - ist). Es gibt verschiedene Arten von Ausgaben aus, je nach den gewählten Optionen. Es ist nützlich, um Fehler sowohl im XML-Code als auch im XML-Parser selbst zu erkennen. xmllint ist im Paket libxml(3) enthalten, welches in den gängigen Distributionen zur Standardausstattung gehört.

Der Aufruf von xmllint note.xml ändert noch nichts:

xmllint note.xml
<?xml version="1.0" encoding="UTF-8"?>
<note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>

Erst die Option '--format' führt zum gewünschten Ergebnis:

xmllint --format note.xml
<?xml version="1.0" encoding="UTF-8"?>
<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

Wer die neu formatierte Datei abspeichern möchte, erreicht dies mit der Option '--output':

xmllint --format note.xml --output nice_note.xml
cat nice_note.xml
<?xml version="1.0" encoding="UTF-8"?>
<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

Xmllint bietet noch viele weitere Möglichkeiten, die ihr der man-Page entnehmen könnt:

Quelle: https://www.mankier.com/1/xmllint

Tags

XML, Format, formatieren, Terminal, XML-Dateien, XML-FILE, Xmllint, XML-Code, Dateium, Option

Olaf
Geschrieben von Olaf am 31. Mai 2022 um 18:11

In Debian versteckt sich xmllint im Paket libxml2-utils.