我正在尝试用python解析一个XML文件,用于学校的一个项目。
为了查看prasing是否工作,我打印了“lista_marfuri”的值。
它显示以下错误:xml.parsers.expat.ExpatError:XML声明格式不正确:第1行,第35栏
XML代码为:
<?xml version="1.0" encoding="UTF-8 standalone="yes"?>
<fapte>
<lista_marfuri>
<marfa>
<id> 1 </id>
<nume> grebla </nume>
<categorie> gradinarit </gradinarit>
<cantitate> 100 </cantitate>
<pret> 20 </pret>
</marfa>
<marfa>
<id> 2 </id>
<nume> sac 1kg ingrasamant </nume>
<categorie> gradinarit </gradinarit>
<cantitate> 300 </cantitate>
<pret> 30 </pret>
</marfa>
<marfa>
<id> 3 </id>
<nume> surubelnita </nume>
<categorie> general </gradinarit>
<cantitate> 200 </cantitate>
<pret> 5 </pret>
</marfa>
</lista_marfuri>
<lista_categorii>
...
</lista_categorii>
<lista_clienti>
...
</lista_clienti>
<lista_comenzi>
...
</lista_comenzi>
</fapte>
Python代码是:
import xml.dom.minidom
tree = xml.dom.minidom.parse('SBC.xml')
fapte = tree.documentElement
marfuri = fapte.getElementsByTagName('marfa')
for marfa in marfuri:
print(f"-- Marfa {marfa.getAttribute('id')} --")
nume = marfa.getElementByTagName('nume')[0].childNodes[0].nodeValue
categorie = marfa.getElementByTagName('categorie')[0].childNodes[0].nodeValue
cantitate = marfa.getElementByTagName('cantitate')[0].childNodes[0].nodeValue
pret = marfa.getElementByTagName('pret')[0].childNodes[0].nodeValue
print(f"Nume: {nume}")
print(f"Categorie: {categorie}")
print(f"Cantitate: {cantitate}")
print(f"Pret: {pret}")
1条答案
按热度按时间vktxenjb1#
我认为使用ElementTree会使您的工作更轻松。
输出