【问题标题】:python elementtree xpath - insert variable in findall @name=VARIABLEHEREpython elementtree xpath - 在 findall @name=VARIABLEHERE 中插入变量
【发布时间】:2016-04-30 12:36:42
【问题描述】:

是否可以通过管道将变量传递给@name 属性?

import xml.etree.ElementTree as ET
tree = ET.parse('C:/test.xml')
root = tree.getroot()

somelist = [x.text for x in root.findall(".//actionList[@name='VARIABLEHEREinsteadoftext']//value")]

我只需要从按名称过滤的特定操作列表中获取所有值,并忽略所有其他操作列表。它适用于

[@name="ACTIONLISTNAME"]

但我想要这样的东西:

X = ACTIONLISTNAME
[@name=X]

提前致谢!

【问题讨论】:

    标签: python xpath xml-parsing elementtree findall


    【解决方案1】:

    来自@alecxe 的字符串格式答案工作正常,但如果您想使用F-strings formatting,您可以这样做:

    注意模式部分中转义的双花括号

    xml_element.findall(f"{{x-schema:schema.xml}}row[@{attribute_name}='{attribute_value}']")
    

    【讨论】:

      【解决方案2】:

      使用字符串格式

      value = "ACTIONLISTNAME"
      root.findall(".//actionList[@name='%s']//value" % value)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-01-26
        • 2012-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-03
        • 1970-01-01
        相关资源
        最近更新 更多