簡體   English   中英

XPath 使用 lxml 失敗

[英]XPath failing using lxml

我之前在 HTML 和 XML 上都使用過 xpath,效果很好,但這次似乎沒有得到任何結果。

數據來自http://www.ahrefs.com/api/ ,在“答案示例”下,保存到 .xml 文件

我的代碼:

from lxml import etree
doc = etree.XML(open('example.xml').read())
print doc.xpath('//result')

這沒有給出任何結果。

我哪里錯了?

您需要考慮文檔的命名空間

from lxml import etree

doc = etree.parse('example.xml')
print doc.xpath('//n:result',
                namespaces={'n': "http://ahrefs.com/schemas/api/links/1"})

=>

[<Element {http://ahrefs.com/schemas/api/links/1}result at 0xc8d670>, 
 <Element {http://ahrefs.com/schemas/api/links/1}result at 0xc8d698>]

我的經驗是在 C# 中使用 XPath,但我相信 XML 命名空間會導致您的查詢失敗。 您需要使用 local() 運算符的一些變體,或者檢查您的文檔以了解預先定義命名空間的某種方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM