0
有沒有一種方法可以獨立於XML文檔來確定xpath返回值的類型?具體來說,我使用lxml。確定查詢的xpath輸出的類型(節點,字符串)
例子:
//a
和//b[a/@href]
總是會返回零個或多個元素的列表。//a/text()
和//a/@href
將始終返回零個或多個字符串的列表。
雖然我可以想出各種嘗試分析這些方法的方法,但感覺就像試圖重新發明輪子。有沒有更好的方法來做到這一點?
背景
我很無聊,要趕上例外事實證明時,有沒有任何a
標籤和我寫root.xpath('//a')[0]
。我不想一味地抓住一切。所以我寫了一組總是返回正確類型的函數。 cssselector
和attrib
替代品工作得很好,但我不能滿足xpath
輸出的期望,而不知道輸出應該是什麼。
如果你真的在意,這是我的代碼。 https://scraperwiki.com/editor/raw/irked
如果您不想捕獲異常,請存儲從xpath返回的列表並檢查長度。或者使用正確的XPath獲取第一個元素:'root.xpath('// a [1]')' – 2012-08-01 16:55:43
實際上,所有四個表達式都會返回節點列表。元素節點爲前兩個,文本節點爲第三個,屬性節點爲第四個。 – 2012-08-01 22:24:24