Ubuntu上的PyXML
我刚刚在我的电脑上全新安装了Ubuntu 10.10,现在想运行一些使用xml和xpath的脚本。但是我在使用PyXML的时候遇到了一个错误。
我觉得这可能是安装的问题。为了安装这个,我做了以下操作:
prompt> sudo apt-get install python2.6-dev # The next line wouldn't install without this.
prompt> sudo easy_install PyXML
-------错误开始--------- username@ubuntu:~/data/code$ MyScript.py
Traceback (most recent call last):
File "/home/username/data/code/app/trunk/MyScript.py", line 17, in <module>
from xml import xpath
File "/usr/local/lib/python2.6/dist-packages/PyXML-0.8.4-py2.6-linux-i686.egg/_xmlplus/xpath/__init__.py", line 112, in <module>
from pyxpath import ExprParserFactory
File "/usr/local/lib/python2.6/dist-packages/PyXML-0.8.4-py2.6-linux-i686.egg/_xmlplus/xpath/pyxpath.py", line 59, in <module>
from xml.xpath.ParsedAbbreviatedRelativeLocationPath import ParsedAbbreviatedRelativeLocationPath
File "/usr/local/lib/python2.6/dist-packages/PyXML-0.8.4-py2.6-linux-i686.egg/_xmlplus/xpath/ParsedAbbreviatedRelativeLocationPath.py", line 31
as = ParsedAxisSpecifier.ParsedAxisSpecifier('descendant-or-self')
^
SyntaxError: invalid syntax
-------------错误结束-------------------
我对PyXML快要失去耐心了。我只是想读取一个xml文件,并用xpath来读写数据。有没有更简单的库可以直接使用?或者有什么办法可以解决这个问题吗?
2 个回答
3
为了说明一下,如果你真的需要用到PyXML(比如说你有一些老旧的代码,现在没时间去更新),只需要把代码中用到的as
改成其他的变量名就可以了。
另外,我注意到Gentoo在PyXML中添加了一个叫use_pyxml()
的方法,这个方法是必须显式调用的;所以标准库的XML模块就不会被使用。如果你对此感兴趣,可以查看这里。
1
PyXML这个库是为很早以前的Python版本(2.4之前)写的,它用到了一个比较新的关键词'as'作为变量名。如果你的需求比较简单,可以直接使用Python标准库里的ElementTree,这个库支持XPath表达式。你可以在这里找到一个例子。
如果你想使用这个标准库模块,可以这样做:
from xml.etree.ElementTree import ElementTree