在Python ElementTree中的Case Insensitive findall

011*_*110 6 python xml

我必须解析具有可能在任何情况下(混合,上,下等)的标记名称的XML,并且我不知道事先会是什么情况.如何在ElementTree中使findall完全不区分大小写?

   # Does not work
   variables = message.findall("VaRiAbLE")
Run Code Online (Sandbox Code Playgroud)

Sna*_*fee 5

您只需从树中获取字符串,小写它,然后重新制作树.然后它应该是可解析的

import xml.etree.ElementTree as ET
def to_parseable(tree):
    t = ET.tostring(tree)
    t = t.lower()
    return ET.fromstring(t)
Run Code Online (Sandbox Code Playgroud)

  • Wtf,你为什么要这样做?至少使用正则表达式使其仅适用于标记和属性名称jeez. (3认同)