我想构建一个图表,显示给定 XML 文档中哪些标签用作其他标签的子级。
我编写了这个函数来获取 lxml.etree 树中给定标签的唯一子标签集:
def iter_unique_child_tags(root, tag):
"""Iterates through unique child tags for all instances of tag.
Iteration starts at `root`.
"""
found_child_tags = set()
instances = root.iterdescendants(tag)
from itertools import chain
child_nodes = chain.from_iterable(i.getchildren() for i in instances)
child_tags = (n.tag for n in child_nodes)
for t in child_tags:
if t not in found_child_tags:
found_child_tags.add(t)
yield t
是否有一个通用的图形构建器,我可以使用这个函数来构建一个点文件或其他格式的图形?
我也偷偷怀疑在某个地方专门为此目的设计了一个工具。那可能是什么?