Учебное пособие по Python XML Parser:чтение примера XML-файла (Minidom, ElementTree)
Что такое XML?
XML означает расширяемый язык разметки. Он был разработан для хранения и передачи небольших и средних объемов данных и широко используется для обмена структурированной информацией.
Python позволяет анализировать и изменять XML-документ. Чтобы разобрать XML-документ, вам нужно иметь весь XML-документ в памяти. В этом руководстве мы увидим, как мы можем использовать класс XML minidom в Python для загрузки и анализа XML-файла.
В этом уроке мы изучим-
- Как анализировать XML с помощью minidom
- Как создать XML-узел
- Как анализировать XML с помощью ElementTree
Как анализировать XML с помощью minidom
Мы создали образец XML-файла, который собираемся проанализировать.
Шаг 1) Внутри файла мы можем увидеть имя, фамилию, дом и область знаний (SQL, Python, тестирование и бизнес)
Шаг 2) После анализа документа мы распечатаем "имя узла". корня документа и «имя первого дочернего тега» . Имя тега и имя узла являются стандартными свойствами файла XML.
- Импортируйте модуль xml.dom.minidom и объявите файл, который необходимо проанализировать (myxml.xml)
- Этот файл содержит некоторую базовую информацию о сотруднике, такую как имя, фамилия, дом, опыт и т. д.
- Мы используем функцию синтаксического анализа в минидоме XML для загрузки и анализа XML-файла.
- У нас есть переменная doc, и doc получает результат функции синтаксического анализа
- Мы хотим распечатать имя узла и дочерний тэг из файла, поэтому объявляем их в функции печати
- Запустите код. Он распечатает имя узла (#document) из XML-файла и первый дочерний тег (employee) из XML-файла.
Примечание :
Имя узла и дочерний тэг — это стандартные имена или свойства XML-дома. В случае, если вы не знакомы с такими соглашениями об именах.
Шаг 3) Мы также можем вызвать список тегов XML из XML-документа и распечатать его. Здесь мы распечатали набор навыков, таких как SQL, Python, тестирование и бизнес.
- Объявить переменную экспертизу, из которой мы собираемся извлечь всю экспертизу имени сотрудника
- Используйте стандартную функцию dom под названием «getElementsByTagName».
- Это позволит получить все элементы с именем навык
- Объявить цикл для каждого из тегов навыков.
- Запустите код. Он выдаст список из четырех навыков.
Как создать узел XML
Мы можем создать новый атрибут с помощью функции «createElement», а затем добавить этот новый атрибут или тег к существующим тегам XML. Мы добавили новый тег «BigData» в наш файл XML.
- Чтобы добавить новый атрибут (BigData) в существующий тег XML, необходимо написать код.
- Затем вам нужно распечатать тег XML с новыми атрибутами, добавленными к существующему тегу XML.
- Чтобы добавить новый XML и добавить его в документ, мы используем код «элементы doc.create»
- Этот код создаст новый тег навыка для нашего нового атрибута «Большие данные».
- Добавить этот тег навыка в первый дочерний элемент документа (сотрудник)
- Запустите код — появится новый тег «большие данные» с другим списком знаний.
Пример анализатора XML
Пример Python 2
import xml.dom.minidom
def main():
# use the parse() function to load and parse an XML file
doc = xml.dom.minidom.parse("Myxml.xml");
# print out the document node and the name of the first child tag
print doc.nodeName
print doc.firstChild.tagName
# get a list of XML tags from the document and print each one
expertise = doc.getElementsByTagName("expertise")
print "%d expertise:" % expertise.length
for skill in expertise:
print skill.getAttribute("name")
# create a new XML tag and add it into the document
newexpertise = doc.createElement("expertise")
newexpertise.setAttribute("name", "BigData")
doc.firstChild.appendChild(newexpertise)
print " "
expertise = doc.getElementsByTagName("expertise")
print "%d expertise:" % expertise.length
for skill in expertise:
print skill.getAttribute("name")
if name == "__main__":
main(); Пример Python 3
import xml.dom.minidom
def main():
# use the parse() function to load and parse an XML file
doc = xml.dom.minidom.parse("Myxml.xml");
# print out the document node and the name of the first child tag
print (doc.nodeName)
print (doc.firstChild.tagName)
# get a list of XML tags from the document and print each one
expertise = doc.getElementsByTagName("expertise")
print ("%d expertise:" % expertise.length)
for skill in expertise:
print (skill.getAttribute("name"))
# create a new XML tag and add it into the document
newexpertise = doc.createElement("expertise")
newexpertise.setAttribute("name", "BigData")
doc.firstChild.appendChild(newexpertise)
print (" ")
expertise = doc.getElementsByTagName("expertise")
print ("%d expertise:" % expertise.length)
for skill in expertise:
print (skill.getAttribute("name"))
if __name__ == "__main__":
main(); Как анализировать XML с помощью ElementTree
ElementTree — это API для управления XML. ElementTree — это простой способ обработки XML-файлов.
Мы используем следующий XML-документ в качестве примера данных:
<data>
<items>
<item name="expertise1">SQL</item>
<item name="expertise2">Python</item>
</items>
</data>
Чтение XML с помощью ElementTree:
мы должны сначала импортировать модуль xml.etree.ElementTree.
import xml.etree.ElementTree as ET
Теперь давайте получим корневой элемент:
root = tree.getroot()
Ниже приведен полный код для чтения указанных выше XML-данных
import xml.etree.ElementTree as ET
tree = ET.parse('items.xml')
root = tree.getroot()
# all items data
print('Expertise Data:')
for elem in root:
for subelem in elem:
print(subelem.text)
вывод:
Expertise Data: SQL Python
Обзор:
Python позволяет анализировать весь XML-документ за один раз, а не по одной строке за раз. Чтобы разобрать XML-документ, вам нужно иметь весь документ в памяти.
- Чтобы проанализировать XML-документ
- Импорт xml.dom.minidom
- Используйте функцию «parse» для анализа документа ( doc=xml.dom.minidom.parse (имя файла);
- Вызвать список тегов XML из документа XML с помощью кода (=doc.getElementsByTagName("имя тегов xml")
- Чтобы создать и добавить новый атрибут в документ XML
- Используйте функцию createElement
Python
- Файловый ввод-вывод Python
- Java BufferedReader:как читать файл в Java с примером
- Функция Python String strip() с ПРИМЕРОМ
- Длина строки Python | Пример метода len()
- Учебное пособие по доходности в Python:генератор и пример доходности и возврата
- Счетчик Python в коллекциях с примером
- Функция Enumerate() в Python:цикл, кортеж, строка (пример)
- Python Проверить, существует ли файл | Как проверить, существует ли каталог в Python
- Python JSON:кодировать (дампы), декодировать (загружать) и читать файл JSON
- Индекс списка Python() с примером