我正在尝试使用 lxml 查询此 XML:
<lista_tareas>
<tarea id="1" realizzato="False" data_limite="12/10/2012" priorita="1">
<description>XML TEST</description>
</tarea>
<tarea id="2" realizzato="False" data_limite="12/10/2012" priorita="1">
<description>XML TEST2</description>
</tarea>
我写了这段代码:
from lxml import etree
doc = etree.parse(file_path)
root = etree.Element("lista_tareas")
for x in root:
z = x.Element("tarea")
for y in z:
element_text = y.Element("description").text
print element_text
它不打印任何东西,你能建议我怎么做吗?
最佳答案
您不想使用 minidom;使用 ElementTree API反而。 DOM API 是一个非常冗长且受限的 API,而 ElementTree API 则发挥了 Python 的优势。
MiniDOM 模块不提供您正在寻找的任何查询 API。
您可以使用捆绑的 xml.etree.ElementTree
模块,或者您可以安装 lxml ,它提供了更强大的 XPath 和其他查询选项。
import xml.etree.ElementTree as ET
root = ET.parse('document.xml').getroot()
for c in root.findall("./Root_Node[@id='1']/sub_node"):
# Do something with c
关于Python Minidom XML 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12815637/