我正在尝试使用python 2.7和xml.etree.ElementTree解析XML。
它仅适用于树中的第一个元素,并且不会遍历它应捕获的所有其他标签。
下面是我用来遍历XML的循环。
prefixes=['conn','dummy']
for datasource in root.findall('.//datasource'):
for relation in datasource.findall('.//relation'):
if 'connection' in relation.attrib:
if relation.attrib['connection'].startswith(tuple(prefixes)):
sql = SQL(relation.text)
if sql.isCustom() is True:
return sql.findTables()
else:
print(relation.attrib['table'])
return relation.attrib['table']
XML看起来像这样。
<datasources>
<datasource>
<connection>
<relation connection="conn.dbe" table="table1">
<datasource>
<connection>
<relation connection="conn.abc" table="table2">
我尝试将iterall以及findall('.//* relation')用作匹配模式,但到目前为止没有任何效果。
答案 0 :(得分:0)
我只得到第一个表的原因是我找到它后就返回了,因此从未完成循环。