2012-09-10 99 views
3

我正在嘗試使用Python的xml.etree.ElementTree.parse()函數來解析通過導出WordPress博客中的所有內容而創建的XML文件。然而,當我嘗試像這樣:WordPress XML ParseError:未綁定的前綴?

import xml.etree.ElementTree as xml 
tree = xml.parse('/path/to/file.xml') 

我收到以下錯誤:

File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1183, in parse 
tree.parse(source, parser) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 656, in parse 
parser.feed(data) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1643, in feed 
self._raiseerror(v) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1507, in _raiseerror 
raise err 
ParseError: unbound prefix: line 189, column 1 

下面是在我的XML文件的189行:

<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blogname.wordpress.com/osd.xml" title="blog name" /> 

我見過很多關於Android開發出現這個錯誤的問題,但我不知道是否以及如何適用於我的情況。有人能幫忙嗎?

回答

6

對於這個愚蠢明顯的每個人都道歉,但事實證明,我根本沒有在文檔中爲「atom」命名空間定義。我在猜測「unbound prefix」意味着前綴「atom」沒有「綁定」到名稱空間定義?

無論如何,添加上述定義已經解決了這個問題。雖然這讓我想知道爲什麼WordPress導出XML文件時沒有正確定義它們使用的所有命名空間......

+1

祝賀。 – Cerin

0

如果刪除所有名稱空間,則絕對可行。

變化計算出來你自己

<s:home>USA</s:home> 

<home>USA</home> 
相關問題