Красивая печать XML в Python
XML означает расширяемый язык разметки и используется для кодирования документа, который может быть понятен как людям, так и машинам. Данные, хранящиеся в формате XML, легко понять и легко изменить. При использовании XML необходимо помнить о трех основных вещах: простоте, универсальности и удобстве использования.
Красивая печать XML с использованием xml.dom.minidom
При таком подходе мы будем создавать XML-контент непосредственно в нашем редакторе, т.е. мы не будем использовать какие-либо внешние XML-файлы.
XML, который мы будем использовать, указан ниже:
OriginalXml = "<?xml version= "2.0" ?>
<gfg>
<instructor>
<Name>Sandeep Jain Sir</Name>
</instructor>
</gfg>"DOM (объектная модель документа ) — это межъязыковой API от консорциума W3C, т.е. World Wide Web, для доступа и изменения XML-документов. Python позволяет анализировать XML-файлы с помощью xml.dom.minidom , который является минимальной реализацией интерфейса DOM. Он проще, чем полный API DOM, и его следует считать меньшим.
Python3
import xml.dom.minidom OriginalXml = "<?xml version= "1.0" ?><gfg><instructor><Name>Sandeep Jain Sir</Name></instructor></gfg>"temp = xml.dom.minidom.parseString(OriginalXml)new_xml = temp.toprettyxml()print(new_xml) |
Выход:
<?xml version="1.0" ?>
<gfg>
<instructor>
<Name>Sandeep Jain Sir</Name>
</instructor>
</gfg>В этом подходе мы создадим XML-контент в файле и получим доступ к его содержимому через функцию python open() , а остальные шаги останутся прежними. Для этого нам нужно создать файл XML, скажем, gfg.xml в вашем редакторе кода.
gfg.xml содержит:
<?xml version= “1.0” ?>
<gfg>
<instructor>
<Name>Sandeep Jain Sir</Name>
</instructor>
</gfg>
Python3
import xml.dom.minidom with open("gfg.xml") as OriginalXML: temp = xml.dom.minidom.parseString(OriginalXML.read()) New_XML = temp.toprettyxml() print(New_XML) |
Выход:
<?xml version="1.0" ?>
<gfg>
<instructor>
<Name>Sandeep Jain Sir</Name>
</instructor>
</gfg>Красивая печать XML с использованием BeautifulSoup
В этом подходе мы будем использовать Beautiful Soup для печати содержимого XML.
Python3
from bs4 import BeautifulSoup temp = BeautifulSoup(open("gfg.xml"), "xml")new_xml = temp.prettify()print(new_xml) |
Выход:
<?xml version="1.0" encoding="utf-8"?> <gfg> <instructor> <Name> Sandeep Jain Sir </Name> </instructor> </gfg>
Красивая печать XML с использованием lxml
В этом методе мы будем использовать модуль python lxml.
Эта библиотека преобразует исходный XML-файл в более красивый XML-файл.
Выход:
<gfg>
<instructor>
<Name>Sandeep Jain Sir</Name>
</instructor>
</gfg>