Красивая печать XML в Python

Опубликовано: 21 Февраля, 2023

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>