首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Minidom XML查询

Python Minidom XML查询
EN

Stack Overflow用户
提问于 2012-10-10 17:00:28
回答 2查看 8K关注 0票数 4

我正在尝试用lxml查询这个XML:

代码语言:javascript
复制
<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>

我写了这段代码:

代码语言:javascript
复制
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

它没有打印任何东西,你能建议我怎么做吗?

EN

回答 2

Stack Overflow用户

发布于 2012-10-10 17:07:47

您不想使用minidom,而是使用ElementTree API。DOM是一种非常冗长且受限的API,而Python则发挥了ElementTree的长处。

MiniDOM模块没有提供您想要的任何查询API。

您可以使用捆绑的xml.etree.ElementTree模块,也可以安装lxml,它提供了更强大的XPath和其他查询选项。

代码语言:javascript
复制
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
票数 4
EN

Stack Overflow用户

发布于 2012-10-10 17:07:15

使用lxml

代码语言:javascript
复制
from lxml import etree

doc = etree.parse ( source )    
for c in doc.xpath ( "//Root_Node[@id='1']" ):
  subnode = c.find ( "sub_node" )
  # ... etc ...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12815637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档