我正在尝试用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它没有打印任何东西,你能建议我怎么做吗?
发布于 2012-10-10 17:07:47
您不想使用minidom,而是使用ElementTree API。DOM是一种非常冗长且受限的API,而Python则发挥了ElementTree的长处。
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发布于 2012-10-10 17:07:15
使用lxml:
from lxml import etree
doc = etree.parse ( source )
for c in doc.xpath ( "//Root_Node[@id='1']" ):
subnode = c.find ( "sub_node" )
# ... etc ...https://stackoverflow.com/questions/12815637
复制相似问题