【发布时间】:2019-09-12 11:48:47
【问题描述】:
无法遍历子标签内的子标签
尝试通过 root.iter() 找到所有子标签并对其进行迭代。 但是输出不是在标签的层次结构中生成的
for child in root.iter():
child_tag = child.tag
for child in root.findall('.//' + child_tag):
txt = "tag1/" + "tag2/" + str(child_tag) + "/" + str(child)
print(txt)
预期输出:
tag1
tag1/tag2
tag1/tag2/tag3
tag1/tag2/tag3/tag4
tag1/tag2/tag3/tag5
tag1/tag2/tag3/tag5/tag6
xml文件详情:
<tag1>
<tag2>
<tag3>
<tag4> </tag4>
<tag5>
<tag6> </tag6>
</tag5>
</tag3>
</tag2>
</tag1>
收到的输出:
tag1
tag1/tag2
tag1/tag2/tag3
tag1/tag2/tag3/tag4
tag1/tag2/tag3/tag5
tag1/tag2/tag5/tag6
--- 不按层次结构
【问题讨论】:
-
如果您查看打印语句,您只有 4 个标签名称的空间:tag1、tag2、str(child_tag)、str(child)。因此,您的最后一次打印将无法拥有您想要的 5 个层次结构。您需要存储当前迭代元素的祖父元素并在 tag1/tag2 之后输出这些元素。
标签: python xml elementtree