我刚刚完成了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
------- BEGIN ERROR --------- 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
------------- END ERROR -------------------
我正处于使用PyXML的极限。我只想读取xml文件并使用xpath读/写数据。是否有一个更简单的库,可以轻松地开箱即用?或者有关如何解决此问题的任何想法?
答案 0 :(得分:2)
只是为了记录,如果你真的需要PyXML(即你现在没有时间移植的遗留代码),只需在两个位置更改as
它就可以用于其他变量名称会做的。
另外,我注意到Gentoo将方法use_pyxml()
添加到明确需要调用的PyXML中;所以不使用标准库XML模块。如果感兴趣,请参阅here。
答案 1 :(得分:1)
PyXML应该是为非常旧版本的Python(&lt; 2.4)编写的,并且它使用后面的一个关键字'as'作为它的变量。如果您的要求很简单,您可以使用支持ElementTree表达式的Python标准库中的XPath。一个例子是here。
要使用标准库模块,请执行以下操作:
from xml.etree.ElementTree import ElementTree