Що таке XML?
XML розшифровується як розширювана мова розмітки. Він був розроблений для зберігання та транспортування невеликих та середніх обсягів даних і широко використовується для обміну структурованою інформацією.
Python дозволяє аналізувати та модифікувати XML-документ. Для синтаксичного аналізу XML-документа потрібно мати весь XML-документ у пам'яті. У цьому посібнику ми побачимо, як ми можемо використовувати XML-клас мінідом у Python для завантаження та синтаксичного аналізу XML-файлу.
У цьому підручнику ми дізнаємось-
- Як проаналізувати XML за допомогою minidom
- Як створити вузол XML
- Як проаналізувати XML за допомогою ElementTree
Як проаналізувати XML за допомогою minidom
Ми створили зразок XML-файлу, який ми збираємося проаналізувати.
Крок 1) Усередині файлу ми можемо побачити ім’я, прізвище, дім та область знань (SQL, Python, Тестування та Бізнес)
Крок 2) Після того, як ми проаналізували документ, ми роздрукуємо "ім'я вузла" кореня документа та " ім'я тега firstchild" . Ім'я тегу та ім'я вузла є стандартними властивостями файлу XML.
- Імпортуйте модуль xml.dom.minidom та оголосіть файл, який потрібно проаналізувати (myxml.xml)
- Цей файл містить основну інформацію про працівника, як-от ім’я, прізвище, дім, досвід тощо.
- Ми використовуємо функцію синтаксичного аналізу в міні-форматі XML для завантаження та синтаксичного аналізу XML-файлу
- У нас є змінна doc і doc отримує результат функції аналізу
- Ми хочемо надрукувати ім'я вузла та дочірнього тегу з файлу, тому оголошуємо це у функції друку
- Запустіть код - він виводить ім'я вузла (#document) із XML-файлу та перше дочірнє ім'я тегу (співробітник) із XML-файлу
Примітка :
Ім'я вузла та дочірнє ім'я тегу - це стандартні імена або властивості XML-домену. На випадок, якщо ви не знайомі з цими правилами іменування.
Крок 3) Ми також можемо викликати список XML-тегів із XML-документа та роздрукувати. Тут ми роздрукували набір навичок, таких як SQL, Python, тестування та бізнес.
- Заявіть змінну експертизу, з якої ми збираємося витягти всю експертизу, яку має співробітник
- Використовуйте стандартну функцію dom, яка називається "getElementsByTagName"
- Це отримає всі елементи з іменем навички
- Оголосіть цикл над кожним із тегів навичок
- Запустіть код - Він дасть список з чотирьох навичок
Як створити вузол XML
Ми можемо створити новий атрибут за допомогою функції "createElement", а потім додати цей новий атрибут або тег до існуючих тегів XML. Ми додали новий тег "BigData" у наш XML-файл.
- Вам потрібно ввести код, щоб додати новий атрибут (BigData) до існуючого тегу XML
- Потім вам потрібно роздрукувати тег XML з новими атрибутами, доданими до існуючого тегу XML
- Щоб додати новий XML і додати його до документа, ми використовуємо код "doc.create elements"
- Цей код створить новий тег навичок для нашого нового атрибута "Великі дані"
- Додайте цей тег навички до документа перша дитина (співробітник)
- Запустіть код - новий тег "великі дані" з'явиться разом з іншим списком знань
Приклад аналізатора XML
Приклад Python 2
імпортувати xml.dom.minidomdef main ():# використовуйте функцію parse () для завантаження та синтаксичного аналізу XML-файлуdoc = xml.dom.minidom.parse ("Myxml.xml");# роздрукувати вузол документа та ім'я першого дочірнього тегуprint doc.nodeNameнадрукувати doc.firstChild.tagName# отримати з документа список XML-тегів та роздрукувати коженexpert = doc.getElementsByTagName ("експертиза")надрукувати "% d досвіду:"% знання.довжиназа майстерність у знанні:друкувати вміння.getAttribute ("ім'я")# створити новий тег XML і додати його в документnewexpertise = doc.createElement ("експертиза")newexpertise.setAttribute ("ім'я", "BigData")doc.firstChild.appendChild (нова експертиза)надрукувати ""expert = doc.getElementsByTagName ("експертиза")надрукувати "% d досвіду:"% знання.довжиназа майстерність у знанні:друкувати вміння.getAttribute ("ім'я")якщо name == "__main__":основний ();
Приклад Python 3
імпортувати xml.dom.minidomdef main ():# використовуйте функцію parse () для завантаження та синтаксичного аналізу XML-файлуdoc = xml.dom.minidom.parse ("Myxml.xml");# роздрукувати вузол документа та ім'я першого дочірнього тегуprint (doc.nodeName)друк (doc.firstChild.tagName)# отримати з документа список XML-тегів та роздрукувати коженexpert = doc.getElementsByTagName ("експертиза")print ("% d експертиза:"% expert.length)за майстерність у знанні:print (skill.getAttribute ("назва"))# створити новий тег XML і додати його в документnewexpertise = doc.createElement ("експертиза")newexpertise.setAttribute ("ім'я", "BigData")doc.firstChild.appendChild (нова експертиза)друк ("")expert = doc.getElementsByTagName ("експертиза")print ("% d експертиза:"% expert.length)за майстерність у знанні:print (skill.getAttribute ("назва"))якщо __name__ == "__основна__":основний ();
Як проаналізувати XML за допомогою ElementTree
ElementTree - це API для роботи з XML. ElementTree - це простий спосіб обробки XML-файлів.
В якості зразка даних ми використовуємо наступний документ XML:
- SQL
- Python
Читання XML за допомогою ElementTree:
спочатку потрібно імпортувати модуль xml.etree.ElementTree.
import xml.etree.ElementTree as ET
Тепер давайте отримаємо кореневий елемент:
root = tree.getroot()
Далі наводиться повний код для читання даних xml вище
import xml.etree.ElementTree as ETtree = ET.parse('items.xml')root = tree.getroot()# all items dataprint('Expertise Data:')for elem in root:for subelem in elem:print(subelem.text)вихід:
Expertise Data:SQLPython
Короткий зміст:
Python дозволяє аналізувати весь документ XML за один раз, а не лише один рядок за раз. Для синтаксичного аналізу XML-документа потрібно мати весь документ у пам'яті.
- Для синтаксичного аналізу XML-документа
- Імпортуйте xml.dom.minidom
- Використовуйте функцію "синтаксичний розбір" для синтаксичного аналізу документа (doc = xml.dom.minidom.parse (ім'я файлу);
- Викликати список XML-тегів із XML-документа за допомогою коду (= doc.getElementsByTagName ("ім'я тегів xml")
- Створити та додати новий атрибут у XML-документі
- Використовуйте функцію "createElement"