我有些标记,我使用lxml的处理数据选择多个元素类型。当我打开一个文件,我不知道该文件被打开之前,如果我有一个或一个以上三种类型的元素的(我能有什么类型我有一个,两个或三个不同的元素和多个实例)更Python的方式从标记数据
我需要了解的是被包含在这种情况下,我有三个类型,但仅在每个类型的一个元素
<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>
那么的子标签,这些元素的一些信息。然而,可能有多达一些随意性较大数量的任何类型的。
我在我的功能
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
这似乎过于冗余
我失去的东西,会收拾这个有点用cssselect
3次获得的元素?
仅供参考,我这样做是因为每种类型的我不得不从相关文件
早期的答案,建议我要澄清一点符合其他一些数据 - 我想避免通过树三次
运行
你有使用csselect?否则,带有'contains('element_type _')'的XPath表达式可能会更好地实现这个技巧? (见http://stackoverflow.com/questions/11106971/how-to-search-for-content-in-xpath-in-multiline-text-using-python) – Qiau 2012-07-29 21:23:56