我正在尝试使用 Python 的 xml.etree.ElementTree.parse() 函数来解析我通过导出 WordPress 博客的所有内容创建的 XML 文件。但是,当我这样尝试时:
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 开发中出现的这个错误的问题,但我不知道这是否适用于我的情况以及如何适用。有人可以帮忙吗?
最佳答案
向所有认为这很明显的人道歉,但事实证明我在文档中根本没有“atom”的命名空间定义。我猜“未绑定(bind)前缀”意味着前缀“atom”没有“绑定(bind)”到命名空间定义?
无论如何,添加上述定义已经解决了问题。虽然这让我想知道为什么 WordPress 导出 XML 文件时没有对它们使用的所有 namespace 进行正确定义...
关于python - WordPress XML 解析错误 : unbound prefix?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12349469/