微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何遍历LXML etree并创建XML方案

如何解决如何遍历LXML etree并创建XML方案

我有自己的类来表示 Node 树的 XML。我正在寻找一种方法生成 scheme - 具有所有标签属性的最小树。

我所说的方案是指一棵树,其中所有标签只出现一次,并且每个标签都有所有可能的属性和子项。

因此,如果 root 有多个 product 子级,其中第一个 product 具有属性 name="some name" 而没有子级,而最后一个 product 具有属性 class="someclass"一个孩子 image,方案树将有一个 root一个孩子 product 具有两个属性 nameclass一个孩子 {{1} }.

image

我已经创建了一个 class SchemeNode(): def __init__(self,tag=None,text=None,parent=None,many=False,attrs=None): self.tag = tag self.text = text self.parent: Node = parent self.children = set() self.many = many self.attrs = attrs if attrs else {} # name,class etc... @property def siblings(self): return self.parent.children def add_child(self,child): child.parent = self self.children.add(child) def __str__(self): return f'Node [{self.tag}]' ,最终会创建这样的方案,但它引发了 SchemeNodeService,我认为有一种更优雅的方法来做到这一点。

也许 BFS 会更好?

max recursion exceeded

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。