我有一些使用 lxml 处理的标记数据。当我打开一个文件时,在打开文件之前我不知道我是否有三种类型的元素中的一种或多种(我可能有一种、两种或三种不同的元素以及我拥有的任何类型的多个实例)
我需要一些关于这些元素的信息,这些信息包含在元素的子标签中
<element_type_1>
<name>joe smith</name>
</element_type_1>
<element_type_2>
<name>mary smith</name>
</element_type_2>
<element_type_3>
<name>patrick smith</name>
</element_type_3>
因此,在这种情况下,我拥有所有三种类型,但每种类型只有一种,但是任何类型的任意数量都可能很大。
我通过cssselect
在我的函数中使用 3 次来获取元素
def get_types(myTree):
type_dict=defaultdict(list)
type_dict['type_1']=myTree.cssselect('element_type_1')
type_dict['type_2']=myTree.cssselect('element_type_2')
type_dict['type_3']=myTree.cssselect('element_type_3')
ret type_dict
这似乎过于多余
我是否错过了一些可以清理这个问题的东西?
仅供参考,我这样做是因为对于每种类型,我都必须匹配相关文档中的一些其他数据
早期的答案表明我需要澄清一下 - 我想避免三次穿过树