gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 16:19:43 31 4
gpt4 key购买 nike

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

<op type="create" file="C:/Users/mureadr/Desktop/A/HMI_FORGF/bld/armle-v7/release/SimpleNetwork/Makefile" found="0"/>

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

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

但我收到错误

raise SyntaxError("invalid predicate")

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

'.//op[@type="create" and @file="c:/Users/mureadr/Desktop/A/HMI_FORGF/bld/armle-v7/release/HmiLogging/Makefile"]'

尝试添加&&,仍然出现相同的错误

'.//op[@type="create" && @file="c:/Users/mureadr/Desktop/A/HMI_FORGF/bld/armle-v7/release/HmiLogging/Makefile"]'

最后尝试了&,仍然出现同样的错误

'.//op[@type="create" & @file="c:/Users/mureadr/Desktop/A/HMI_FORGF/bld/armle-v7/release/HmiLogging/Makefile"]'

我猜测这是 xml.etree 的限制。

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

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

最佳答案

可以连续使用多个方括号

'.//op[@type="create"][@file="/some/path"]'

更新:我发现您正在使用 python 的 xml.etree 模块。我不确定上述答案对于该模块是否有效(它对 XPath 的支持极其有限)。我建议对所有 XML 任务使用首选库 -- LXML 。如果您使用lxml,则只需doc.xpath(".//op[..][..]")

关于python xml.etree - 如何搜索多个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38599880/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com