Какво е XML?
XML означава eXtensible Markup Language. Той е проектиран да съхранява и транспортира малки до средни количества данни и е широко използван за споделяне на структурирана информация.
Python ви позволява да анализирате и модифицирате XML документ. За да анализирате XML документ, трябва да имате целия XML документ в паметта. В този урок ще видим как можем да използваме XML минидом клас в Python за зареждане и анализиране на XML файл.
В този урок ще научим-
- Как да анализирате XML с помощта на minidom
- Как да създадете XML възел
- Как да анализирате XML с помощта на ElementTree
Как да анализирате XML с помощта на minidom
Създадохме примерен XML файл, който ще анализираме.
Стъпка 1) Във вътрешния файл можем да видим собствено име, фамилия, дом и област на опит (SQL, Python, тестване и бизнес)
Стъпка 2) След като анализираме документа, ще отпечатаме "името на възела" на корена на документа и " firstchild tagname" . Името на маркера и името на възела са стандартните свойства на XML файла.
- Импортирайте модула xml.dom.minidom и декларирайте файл, който трябва да бъде анализиран (myxml.xml)
- Този файл съдържа основна информация за служител като име, фамилия, дом, опит и т.н.
- Използваме функцията за синтактичен анализ на XML минидом, за да заредим и анализираме XML файла
- Имаме променлива doc и doc получава резултата от функцията за синтактичен анализ
- Искаме да отпечатаме името на възела и дъщерното име от файла, така че го декларираме във функция за печат
- Стартирайте кода - Той отпечатва името на възела (#document) от XML файла и първото име на дете (служител) от XML файла
Забележка :
Името на възела и дъщерното име са стандартните имена или свойства на XML dom. В случай, че не сте запознати с този тип конвенции за именуване.
Стъпка 3) Можем също да извикаме списъка с XML тагове от XML документа и да бъде разпечатан. Тук разпечатахме набора от умения като SQL, Python, Тестване и Бизнес.
- Декларирайте променливата експертиза, от която ще извлечем цялата експертиза, която има служителят
- Използвайте стандартната функция dom, наречена "getElementsByTagName"
- Това ще получи всички елементи, наречени умение
- Декларирайте цикъла над всеки един от маркерите за умения
- Изпълнете кода - Той ще даде списък с четири умения
Как да създадете XML възел
Можем да създадем нов атрибут, като използваме функцията "createElement" и след това да добавим този нов атрибут или таг към съществуващите XML тагове. Добавихме нов таг „BigData“ в нашия XML файл.
- Трябва да кодирате, за да добавите новия атрибут (BigData) към съществуващия XML маркер
- След това трябва да разпечатате XML маркера с нови атрибути, добавени със съществуващия XML етикет
- За да добавим нов XML и да го добавим към документа, използваме код "doc.create елементи"
- Този код ще създаде нов маркер за умения за новия ни атрибут "Големи данни"
- Добавете този таг за умения в документа първо дете (служител)
- Изпълнете кода - новият таг "големи данни" ще се появи с другия списък с експертни познания
Пример за 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 ("експертиза")print "% d expert:"% expert.lengthза умения в опит:print skill.getAttribute ("име")# създайте нов XML маркер и го добавете в документаnewexpertise = doc.createElement ("опит")newexpertise.setAttribute ("име", "BigData")doc.firstChild.appendChild (нова експертиза)отпечатай ""expert = doc.getElementsByTagName ("експертиза")print "% d expert:"% expert.lengthза умения в опит:print skill.getAttribute ("име")ако name == "__main__":основна ();
Пример за Python 3
импортирайте xml.dom.minidomdef main ():# използвайте функцията parse (), за да заредите и анализирате XML файлdoc = xml.dom.minidom.parse ("Myxml.xml");# разпечатайте възела на документа и името на първия подчинен етикетпечат (doc.nodeName)печат (doc.firstChild.tagName)# вземете списък с XML тагове от документа и отпечатайте всеки от тяхexpert = doc.getElementsByTagName ("експертиза")print ("% d експертиза:"% expert.length)за умения в опит:печат (skill.getAttribute ("име"))# създайте нов XML маркер и го добавете в документаnewexpertise = doc.createElement ("опит")newexpertise.setAttribute ("име", "BigData")doc.firstChild.appendChild (нова експертиза)печат ("")expert = doc.getElementsByTagName ("експертиза")print ("% d експертиза:"% expert.length)за умения в опит:печат (skill.getAttribute ("име"))ако __name__ == "__main__":основна ();
Как да анализирате 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"