Hübsches Drucken der XML-Ausgabe in Python
-
XML-Ausgabe in Python mit der Bibliothek
BeautifulSoap
hübsch machen -
Hübsche XML-Ausgabe in Python mit der
lxml
-Bibliothek
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.