首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python xml.etree -如何搜索多个属性

python xml.etree -如何搜索多个属性
EN

Stack Overflow用户
提问于 2016-07-26 21:06:19
回答 1查看 48关注 0票数 1

我有一个带有以下行的XML文件:

代码语言:javascript
复制
<op type="create" file="C:/Users/mureadr/Desktop/A/HMI_FORGF/bld/armle-v7/release/SimpleNetwork/Makefile" found="0"/>

我想使用xml.etree搜索多个属性:

代码语言:javascript
复制
result = tree.search('.//op[@type="create" @file="c:/Users/mureadr/Desktop/A/HMI_FORGF/bld/armle-v7/release/HmiLogging/Makefile"]')

但我犯了个错误

引发SyntaxError(“无效谓词”)

我尝试了这个(添加了and),仍然得到了相同的错误

代码语言:javascript
复制
'.//op[@type="create" and @file="c:/Users/mureadr/Desktop/A/HMI_FORGF/bld/armle-v7/release/HmiLogging/Makefile"]'

尝试添加&&,仍然得到相同的错误

代码语言:javascript
复制
'.//op[@type="create" && @file="c:/Users/mureadr/Desktop/A/HMI_FORGF/bld/armle-v7/release/HmiLogging/Makefile"]'

最后,尝试了&,仍然得到了相同的错误

代码语言:javascript
复制
'.//op[@type="create" & @file="c:/Users/mureadr/Desktop/A/HMI_FORGF/bld/armle-v7/release/HmiLogging/Makefile"]'

我猜这是xml.etree的一个限制。

也许我以后不应该使用它,但我的项目快完成了。

对于N属性,如何使用etree.xml来搜索所有N属性?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-26 21:08:51

可以连续使用多个方括号。

代码语言:javascript
复制
'.//op[@type="create"][@file="/some/path"]'

更新:我看到您正在使用python的xml.etree模块。我不确定上面的答案对这个模块是否有效(它对XPath的支持非常有限)。我建议对所有XML任务使用go-to库-- LXML。如果您使用lxml,它将只是doc.xpath(".//op[..][..]")

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38599880

复制
相关文章

相似问题

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