我有些標記,我使用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