Hübsches Drucken der XML-Ausgabe in Python

Vaibhav Vaibhav 16 Februar 2024
  1. XML-Ausgabe in Python mit der Bibliothek BeautifulSoap hübsch machen
  2. Hübsche XML-Ausgabe in Python mit der lxml-Bibliothek
Hübsches Drucken der XML-Ausgabe in Python

Beim Lesen von Textdateien, HTML-Dateien, XML-Dateien usw. ist der Inhalt einer Datei schlecht strukturiert und enthält uneinheitliche Einzüge. Diese Ungleichheit macht es schwierig, die Ausgabe zu verstehen. Dieses Problem kann gelöst werden, indem die Ausgabe solcher Dateien verschönert wird. Die Verschönerung umfasst das Korrigieren inkonsistenter Einrückungen, das Entfernen zufälliger Leerzeichen usw.

In diesem Artikel erfahren Sie, wie Sie die Ausgabe einer XML-Datei schöner gestalten können. Damit wir alle auf derselben Seite sind, berücksichtigen die folgenden Python-Codes diese XML-Datei. Wenn Sie dieselbe Datei verwenden möchten, müssen Sie lediglich den XML-Inhalt in eine neue Datei mit dem Namen books.xml kopieren.

XML-Ausgabe in Python mit der Bibliothek BeautifulSoap hübsch machen

BeautifulSoup ist eine Python-basierte Bibliothek zum Parsen von HTML- und XML-Dateien. Es wird im Allgemeinen zum Web-Scraping von Daten aus Websites und Dokumenten verwendet. Wir können diese Bibliothek verwenden, um die Ausgabe eines XML-Dokuments zu verschönern.

Falls Sie diese Bibliothek nicht auf Ihrem Computer installiert haben, verwenden Sie einen der folgenden pip-Befehle.

pip install beautifulsoup4
pip3 install beautifulsoup4

Wir müssen zwei weitere Module installieren, um mit dieser Bibliothek zu arbeiten: html5lib und lxml. Die Bibliothek html5lib ist eine Python-basierte Bibliothek zum Parsen von HTML- oder Hypertext Markup Language-Dokumenten. Und die Bibliothek lxml ist eine Sammlung von Dienstprogrammen zum Arbeiten mit XML-Dateien. Verwenden Sie die folgenden pip-Befehle, um diese Bibliotheken auf Ihrem Computer zu installieren.

pip install html5lib
pip install lxml 

Sehen Sie sich den folgenden Python-Code an, um die Verwendung zu verstehen.

from bs4 import BeautifulSoup

filename = "./books.xml"
bs = BeautifulSoup(open(filename), "xml")
xml_content = bs.prettify()
print(xml_content)

Ausgabe:

<?xml version="1.0" encoding="utf-8"?>
<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>
  <description>
   An in-depth look at creating applications
    with XML.
  </description>
 </book>
 
 ...

 <book id="bk111">
  <author>
   O'Brien, Tim
  </author>
  <title>
   MSXML3: A Comprehensive Guide
  </title>
  <genre>
   Computer
  </genre>
  <price>
   36.95
  </price>
  <publish_date>
   2000-12-01
  </publish_date>
  <description>
   The Microsoft MSXML3 parser is covered in
    detail, with attention to XML DOM interfaces, XSLT processing,
    SAX and more.
  </description>
 </book>
 <book id="bk112">
  <author>
   Galos, Mike
  </author>
  <title>
   Visual Studio 7: A Comprehensive Guide
  </title>
  <genre>
   Computer
  </genre>
  <price>
   49.95
  </price>
  <publish_date>
   2001-04-16
  </publish_date>
  <description>
   Microsoft Visual Studio 7 is explored in depth,
    looking at how Visual Basic, Visual C++, C#, and ASP+ are
    integrated into a comprehensive development
    environment.
  </description>
 </book>
</catalog>

Der obige Code geht davon aus, dass sich die Datei books.xml im aktuellen Arbeitsverzeichnis befindet. Oder wir können auch den vollständigen Pfad zur Datei in der Variablen filename setzen. Die Funktion prettify() verschönert die Ausgabe der XML-Datei. Beachten Sie, dass die Ausgabe zum besseren Verständnis gekürzt wurde.

Hübsche XML-Ausgabe in Python mit der lxml-Bibliothek

Wir können die Bibliothek lxml allein verwenden, um die Ausgabe einer XML-Datei zu verschönern. Siehe dazu den folgenden Python-Code.

from lxml import etree

filename = "./books.xml"
f = etree.parse(filename)
content = etree.tostring(f, pretty_print=True, encoding=str)
print(content)

Ausgabe:

<?xml version="1.0" encoding="utf-8"?>
<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>
  <description>
   An in-depth look at creating applications
    with XML.
  </description>
 </book>
 
 ...

 <book id="bk111">
  <author>
   O'Brien, Tim
  </author>
  <title>
   MSXML3: A Comprehensive Guide
  </title>
  <genre>
   Computer
  </genre>
  <price>
   36.95
  </price>
  <publish_date>
   2000-12-01
  </publish_date>
  <description>
   The Microsoft MSXML3 parser is covered in
    detail, with attention to XML DOM interfaces, XSLT processing,
    SAX and more.
  </description>
 </book>
 <book id="bk112">
  <author>
   Galos, Mike
  </author>
  <title>
   Visual Studio 7: A Comprehensive Guide
  </title>
  <genre>
   Computer
  </genre>
  <price>
   49.95
  </price>
  <publish_date>
   2001-04-16
  </publish_date>
  <description>
   Microsoft Visual Studio 7 is explored in depth,
    looking at how Visual Basic, Visual C++, C#, and ASP+ are
    integrated into a comprehensive development
    environment.
  </description>
 </book>
</catalog>

Beachten Sie das Argument pretty_print = True. Dieses Flag macht die Ausgabe schöner.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Verwandter Artikel - Python XML