2011-07-21 16 views
2

以前はHTMLとXMLの両方でxpathsを使用していましたが、今回は結果が得られないようです。lxmlを使用したXPathのエラー

データは.xmlファイル

に保存され、「答えの例」の下で、http://www.ahrefs.com/api/からです私のコード:任意の結果を与えるものではありません

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

どこが間違っていますか?

答えて

1

あなたのアカウントに、文書のnamespaceを取る必要があります。

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>] 
0

私の経験はC#でXPathを使用していますが、XML名前空間によってクエリが失敗すると思われます。 local()演算子のバリエーションを使用するか、あらかじめ名前空間を定義するための方法についてはドキュメントを調べる必要があります。

関連する問題