Шта је КСМЛ?
КСМЛ је скраћеница од еКстенсибле Маркуп Лангуаге. Дизајниран је за чување и транспорт малих до средњих количина података и широко се користи за размену структурираних информација.
Питхон вам омогућава да рашчланите и измените КСМЛ документ. Да бисте рашчланили КСМЛ документ, морате имати цео КСМЛ документ у меморији. У овом упутству ћемо видети како можемо да користимо КСМЛ класу минидома у Питхону за учитавање и рашчлањивање КСМЛ датотеке.
У овом упутству ћемо научити-
- Како рашчланити КСМЛ помоћу минидома
- Како створити КСМЛ чвор
- Како рашчланити КСМЛ помоћу ЕлементТрее
Како рашчланити КСМЛ помоћу минидома
Направили смо пример КСМЛ датотеке коју ћемо рашчланити.
Корак 1) Унутар датотеке можемо видети име, презиме, дом и подручје стручности (СКЛ, Питхон, тестирање и пословање)
Корак 2) Након што смо рашчланили документ, исписаћемо „ име чвора“ у корену документа и „ фирстцхилд тагнаме“ . Име ознаке и име чвора су стандардна својства КСМЛ датотеке.
- Увезите модул кмл.дом.минидом и пријавите датотеку која мора бити рашчлањена (микмл.кмл)
- Ова датотека садржи неке основне информације о запосленом попут имена, презимена, куће, стручности итд.
- За учитавање и рашчлањивање КСМЛ датотеке користимо функцију рашчлањивања на КСМЛ минидому
- Имамо променљиву доц и доц добија резултат функције рашчлањивања
- Желимо да из датотеке одштампамо име чвора и подређено име, па га пријављујемо у функцији исписа
- Покрените код - Исписује име чвора (#доцумент) из КСМЛ датотеке и прво подређено име ознаке (запослени) из КСМЛ датотеке
Напомена :
Име чвора и име подређене ознаке су стандардна имена или својства КСМЛ домене. У случају да нисте упознати са овом врстом именовања.
Корак 3) Такође можемо позвати листу КСМЛ ознака из КСМЛ документа и исписати је. Овде смо одштампали скуп вештина попут СКЛ-а, Питхон-а, тестирања и пословања.
- Изјавите променљиву стручност из које ћемо издвојити сву стручност коју има запослени
- Користите стандардну функцију дом названу "гетЕлементсБиТагНаме"
- Ово ће добити све елементе именоване вештина
- Прогласите петљу преко сваке од тагова вештина
- Покрените код - Даће вам листу од четири вештине
Како створити КСМЛ чвор
Можемо створити нови атрибут помоћу функције „цреатеЕлемент“, а затим додати нови атрибут или ознаку постојећим КСМЛ ознакама. Додали смо нову ознаку „БигДата“ у нашу КСМЛ датотеку.
- Морате кодирати да бисте додали нови атрибут (БигДата) постојећој КСМЛ ознаци
- Затим морате да одштампате КСМЛ ознаку са новим атрибутима придруженим постојећој КСМЛ ознаци
- Да бисмо додали нови КСМЛ и додали га у документ, користимо код „доц.цреате елементс“
- Овај код ће створити нову ознаку вештине за наш нови атрибут „Велики подаци“
- Додајте ову ознаку вештине у документ прво дете (запослени)
- Покрените код - нова ознака „велики подаци“ ће се појавити са другом листом стручности
Пример КСМЛ парсера
Питхон 2 Пример
импорт кмл.дом.минидомдеф маин ():# користите функцију парсе () за учитавање и рашчлањивање КСМЛ датотекедоц = кмл.дом.минидом.парсе ("Микмл.кмл");# исписати чвор документа и име прве подређене ознакепринт доц.нодеНамеиспис доц.фирстЦхилд.тагНаме# набавите листу КСМЛ ознака из документа и одштампајте свакуекперт = доц.гетЕлементсБиТагНаме ("стручност")испис "% д стручност:"% стручност.дуљиназа стручност:исписати скилл.гетАттрибуте ("име")# креирајте нову КСМЛ ознаку и додајте је у документневекпертисе = доц.цреатеЕлемент ("стручност")невекпертисе.сетАттрибуте ("име", "БигДата")доц.фирстЦхилд.аппендЦхилд (нова експертиза)одштампај ""екперт = доц.гетЕлементсБиТагНаме ("стручност")испис "% д стручност:"% стручност.дуљиназа стручност:исписати скилл.гетАттрибуте ("име")ако је име == "__маин__":главни();
Питхон 3 Пример
импорт кмл.дом.минидомдеф маин ():# користите функцију парсе () за учитавање и рашчлањивање КСМЛ датотекедоц = кмл.дом.минидом.парсе ("Микмл.кмл");# исписати чвор документа и име прве подређене ознакепринт (доц.нодеНаме)испис (доц.фирстЦхилд.тагНаме)# набавите листу КСМЛ ознака из документа и одштампајте свакуекперт = доц.гетЕлементсБиТагНаме ("стручност")принт ("% д стручност:"% екперт.ленгтх)за стручност:принт (скилл.гетАттрибуте ("име"))# креирајте нову КСМЛ ознаку и додајте је у документневекпертисе = доц.цреатеЕлемент ("стручност")невекпертисе.сетАттрибуте ("име", "БигДата")доц.фирстЦхилд.аппендЦхилд (нова експертиза)испис ("")екперт = доц.гетЕлементсБиТагНаме ("стручност")принт ("% д стручност:"% екперт.ленгтх)за стручност:принт (скилл.гетАттрибуте ("име"))ако је __наме__ == "__главно__":главни();
Како рашчланити КСМЛ помоћу ЕлементТрее
ЕлементТрее је АПИ за манипулацију КСМЛ-ом. ЕлементТрее је једноставан начин за обраду КСМЛ датотека.
Као узорак података користимо следећи КСМЛ документ:
- SQL
- Python
Читање КСМЛ-а помоћу ЕлементТрее:
прво морамо увести модул кмл.етрее.ЕлементТрее.
import xml.etree.ElementTree as ET
Сада дохватимо основни елемент:
root = tree.getroot()
Следи комплетан код за читање горњих кмл података
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
Резиме:
Питхон вам омогућава да рашчланите цео КСМЛ документ одједном, а не само један ред одједном. Да бисте рашчланили КСМЛ документ, морате имати цео документ у меморији.
- За рашчлањивање КСМЛ документа
- Увезите кмл.дом.минидом
- Користите функцију "рашчлањивање" за рашчлањивање документа (доц = кмл.дом.минидом.парсе (име датотеке);
- Позовите листу КСМЛ ознака из КСМЛ документа помоћу кода (= доц.гетЕлементсБиТагНаме ("име кмл ознака")
- Да бисте креирали и додали нови атрибут у КСМЛ документ
- Користите функцију "цреатеЕлемент"