Изучение Python XML

Свойства Python Программирование и разработка

В этой статье мы обсудим, как анализировать XML на языке программирования Python. Мы рассмотрим несколько примеров, чтобы понять механизм синтаксического анализа XML в Python.

Что такое XML?

XML означает расширяемый язык разметки. XML очень похож на HTML. XML используется для хранения и передачи данных, а HTML используется только для отображения данных в браузере. XML позволяет пользователю хранить и передавать данные организованным образом.

Пример XML-файла

Пользователь может определять свои собственные теги в XML-файле. В следующем примере мы используем определяемый пользователем тег, например — . Для каждого тега нам также понадобится закрывающий тег — . Пользователь может определить столько пользовательских тегов, сколько ему нужно. Вот пример XML-файла:

<?xml version=«1.0» encoding=«UTF-8» standalone=«no» ?>
<StudentsData FormatVersion=«1»>
<Students>
<Student Name=«David» Type=«Part-Time»></Student>

<Student Name=«Emma» Type=«Full-Time»></Student>

<Student Name=«Noah» Type=«Part-Time»></Student>

<Student Name=«Olivia» Type=«Full-Time»></Student>

<Student Name=«Leo» Type=«Full-Time»></Student>

<Student Name=«George» Type=«Full-Time»></Student>

</Students>
</StudentsData>

Разбор библиотек в Python

Существуют библиотеки для анализа XML-данных в большинстве современных языков программирования высокого уровня. Есть несколько библиотек для разбора файлов XML в python:

  1. Minidom
  2. ElementTree

Однако в этой статье мы сосредоточимся на библиотеке minidom для анализа XML-данных. Minidom — это минимальная реализация интерфейса объектной модели документа. Он очень легкий и проще, чем полная модель DOM.

Пример 1

В этом примере мы сначала импортируем модуль «xml.dom.minidom». Здесь будет проанализирован XML-файл — sample.XML. В файле xml хранится основная информация о студентах — имя студента и название раздела класса. Функция синтаксического анализа используется в xml minidom для загрузки и анализа файла xml. Переменная mydoc получает результат функции синтаксического анализа. Затем функция печати используется для отображения имени узла и имени тега первого дочернего элемента.

import xml.dom.minidom

def main():
# Load and parse XML file
mydoc = xml.dom.minidom.parse(«sample.xml»)

# prints the nodename and the tagname of the firstchild.
print (mydoc.nodeName)
print (mydoc.firstChild.tagName)

if __name__ == «__main__»:
main()

Затем функция печати используется для отображения имени узла и имени

Пример 2

В этом примере мы увидим, как получить список тегов XML и распечатать их. Мы объявляем переменную «шпилька». Эта переменная содержит всех студентов из studentData. Цикл for получает все данные с именем тега «Name».

import xml.dom.minidom

def main():
# Load and parse XML file
mydoc = xml.dom.minidom.parse(«sample.xml»)

# prints the nodename and the tagname of the firstchild.
print (mydoc.nodeName)
print (mydoc.firstChild.tagName)

# get the XML tags
stud = mydoc.getElementsByTagName («Student»)
print («No of students : %d» % stud.length)

for name in stud:
print (name.getAttribute(«Name»))

if __name__ == «__main__»:
main()

Эта переменная содержит всех студентов из studentData

Пример 3

Это еще один пример синтаксического анализа XML с использованием библиотеки minidom. В этом примере мы также увидим, как создать новый элемент xml. Во-первых, мы загрузим и проанализируем данный XML-файл, то есть файл «sample.xml». Новый элемент XML можно создать с помощью функции — createElement (). После создания элемента мы можем добавить его к существующим элементам xml с помощью функции appendChild ().

import xml.dom.minidom

def main():
# Load and parse XML file
myDoc = xml.dom.minidom.parse(«sample.xml»);

# print document node and first child tag name
print (myDoc.nodeName)
print (myDoc.firstChild.tagName)

# get the list of the XML tags
studName = myDoc.getElementsByTagName(«Student»)
print («%d studName:» % studName.length)
for sName in studName:
print (sName.getAttribute(«Name»))

# Add new xml tags
newStudName = myDoc.createElement(«Student»)
newStudName.setAttribute(«Name», «Paul»)
myDoc.firstChild.appendChild(newStudName)
print (» «)

# print all XML tags
studName = myDoc.getElementsByTagName(«Student»)
print («%d studName:» % studName.length)
for sName in studName:
print (sName.getAttribute(«Name»))

if __name__ == «__main__»:
main()

Новый элемент XML можно создать с помощью функции

Заключение

В этой статье кратко обсуждается формат файла XML и способы синтаксического анализа файлов XML в Python. В Python есть несколько библиотек для анализа файлов XML. Но в этой статье мы рассмотрели только библиотеку minidom и увидели несколько примеров для синтаксического анализа файлов xml и добавления новых элементов xml.

Оцените статью
bestprogrammer.ru
Добавить комментарий