Python XML Dosyası – Nasıl Okunur, Yazılır ve Ayrıştırılır
⚡ Akıllı Özet
Python XML işleme, yerleşik minidom ve ElementTree modüllerini kullanarak XML belgelerini okumanıza, yazmanıza ve ayrıştırmanıza olanak tanır. Minidom sınıfı bir dosyayı belleğe DOM olarak yüklerken, ElementTree daha hızlı ve daha verimli bir yöntem sunar. Pythonic tree API.
Aşağıdaki bölümler XML dosyalarının ayrıştırılması, yazılması ve okunmasını kapsamaktadır. Python.
XML nedir?
XML, Genişletilebilir İşaretleme Dili anlamına gelir. Küçük ve orta miktarlardaki verileri depolamak ve taşımak için tasarlanmıştır ve yapılandırılmış bilgilerin paylaşımında yaygın olarak kullanılır.
Python XML belgelerini ayrıştırmanıza ve değiştirmenize olanak tanır. Bir XML belgesini ayrıştırmak için, tüm XML belgesinin bellekte olması gerekir. Bu eğitimde, XML minidom sınıfını nasıl kullanabileceğimizi göreceğiz. Python XML dosyalarını yüklemek ve ayrıştırmak için.
Minidom kullanarak XML Ayrıştırma nasıl yapılır
Ayrıştıracağımız örnek bir XML dosyası oluşturduk.
Adım 1) Örnek XML dosyası oluşturun
Dosyanın içinde adınızı, soyadınızı, evinizi ve uzmanlık alanınızı (SQL, Python(Test ve İşletme).
Adım 2) XML dosyasını yüklemek ve ayrıştırmak için ayrıştırma işlevini kullanın
Belgeyi ayrıştırmayı tamamladıktan sonra, belgenin kökünün "düğüm adını" ve "ilk alt öğe etiket adını" yazdıracağız. Etiket adı ve düğüm adı, XML dosyasının standart özellikleridir.
- xml.dom.minidom modülünü içe aktarın ve ayrıştırılacak dosyayı (myxml.xml) tanımlayın.
- Bu dosya, bir çalışanın adı, soyadı, evi, uzmanlık alanı vb. gibi bazı temel bilgileri içerir.
- XML dosyasını yüklemek ve ayrıştırmak için XML minidomundaki ayrıştırma işlevini kullanıyoruz
- `doc` adında bir değişkenimiz var ve `doc`, `parse` fonksiyonunun sonucunu alıyor.
- Dosyadan düğüm adını ve alt etiket adını yazdırmak istiyoruz, bu nedenle bunu yazdırma fonksiyonunda tanımlıyoruz.
- Kodu çalıştırın - XML dosyasından düğüm adını (#document) ve XML dosyasından ilk alt etiket adını (çalışan) yazdırır.
notNodename ve child tagname, XML DOM'un standart adları veya özellikleridir.
3. Adım) XML belgesinden XML etiketlerinin listesini çağırın ve yazdırın.
Ardından, XML belgesinden XML etiketlerinin listesini çağırıp yazdırabiliriz. Burada SQL gibi beceriler kümesini yazdırdık. Python, Test yapmak ve İşletme.
- Uzmanlık değişkenini tanımlayalım, bu değişkenden yola çıkarak incelemeler yapacağız.tracçalışanın sahip olduğu tüm uzmanlık alanlarının isimleri
- “getElementsByTagName” adlı dom standart işlevini kullanın
- Bu, beceri adı verilen tüm unsurları elde edecek
- Beceri etiketlerinin her biri üzerinde bir döngü tanımlayın.
- Kodu çalıştırın - Dört beceriden oluşan bir liste verecektir.
XML Düğümü Nasıl Yazılır
“createElement” fonksiyonunu kullanarak yeni bir nitelik oluşturabilir ve daha sonra bu yeni niteliği veya etiketi mevcut XML etiketlerine ekleyebiliriz. XML dosyamıza yeni bir “BigData” etiketi ekledik.
- Yeni özniteliği (BigData) mevcut XML etiketine eklemek için kod yazmanız gerekiyor.
- Ardından, mevcut XML etiketine yeni öznitelik eklenmiş XML etiketini yazdırmanız gerekiyor.
- Yeni bir XML etiketi eklemek ve bunu belgeye dahil etmek için "doc.createElement" kodunu kullanırız.
- Bu kod, yeni özelliğimiz olan "Büyük Veri" için yeni bir beceri etiketi oluşturacaktır.
- Bu beceri etiketini belgenin ilk alt öğesine (çalışan) ekleyin.
- Kodu çalıştırın; diğer uzmanlık alanlarının listesinin yanında "BigData" adlı yeni bir etiket görünecektir.
XML Ayrıştırıcı Örneği
Python 2 Örnek
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") #Write 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 Örnek
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")) # Write 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();
ElementTree kullanarak XML Ayrıştırma
ElementTree, XML dosyalarını işlemek için kullanılan bir API'dir. ElementTree, XML dosyalarını işlemenin kolay bir yoludur.
Örnek veri olarak aşağıdaki XML belgesini kullanıyoruz:
<data> <items> <item name="expertise1">SQL</item> <item name="expertise2">Python</item> </items> </data>
ElementTree kullanarak XML okuma:
Öncelikle xml.etree.ElementTree modülünü içe aktarmamız gerekiyor.
import xml.etree.ElementTree as ET
Şimdi kök öğeyi alalım:
root = tree.getroot()
Yukarıdaki XML verilerini okumak için gereken kodun tamamı aşağıdadır:
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)
Çıktı:
Expertise Data: SQL Python





