如何在xml TAG搜索中添加通配符? 我正在尝试使用Python的xml.elementTree库找到当前XML节点的所有子节点的标签以“MYTAG”开头。 XML看起来像:
ROOT
FOO
BAR
MYTAG1
MYTAG2
我试过
xmlTree = xmlET.parse('XML_FILE')
xmlRoot = xmlTree.getroot()
MYTags = xmlRoot.findall('MYTAG{*}')
使用它可以正常工作,但当然只返回一个元素,而不是两者。
xmlRoot.findall('MYTAG1')
答案 0 :(得分:4)
由于 xpath 支持在 xml 中相当有限,一种方法是使用 getchildren()并返回标记为 startswith 强>:
import xml.etree.ElementTree as ET
from StringIO import StringIO
# sample xml
s = '<root><mytag1>hello</mytag1><mytag2>world!</mytag2><tag3>nothing</tag3></root>'
tree = ET.parse(StringIO(s))
root = tree.getroot()
# using getchildren() within root and check if tag starts with keyword
print [node.text for node in root.getchildren() if node.tag.startswith('mytag')]
结果:
['hello', 'world!']