2024-04-29 09:14:14 发布
网友
我必须解析标记名在任何情况下都可能存在的XML(mixed、upper、lower等),而且我不知道前面会是什么情况。我怎样才能使findall在ElementTree中完全不区分大小写?在
# Does not work variables = message.findall("VaRiAbLE")
用正则表达式来拯救。注意,这在性能方面可能很糟糕,但在从元素中提取XML属性方面非常出色。在
def getInsensitiveAttrbiute(element, key) : keyRegex = re.compile(key, re.IGNORECASE) for key in element.attrib.keys() : if keyRegex.match(key) : return element.attrib[key] raise KeyError element = ET.fromstring('<FOO src="BAR" />') print getInsensitiveAttrbiute(element, "sRc")
您只需从树中获取字符串,将其小写,然后重新生成树。那么它应该是可解析的
import xml.etree.ElementTree as ET def to_parseable(tree): t = ET.tostring(tree) t = t.lower() return ET.fromstring(t)
用正则表达式来拯救。注意,这在性能方面可能很糟糕,但在从元素中提取XML属性方面非常出色。在
您只需从树中获取字符串,将其小写,然后重新生成树。那么它应该是可解析的
相关问题 更多 >
编程相关推荐