Python中文
首页
教程
问答
标签
搜索
登录
注册
如何在LXML XPath表达式中使用变量
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我在eclipse中使用python3.3和windows7上的PyDev插件。在</p> <p>我需要使用XPath和LXML解析XML文件。如果我使用静态XPath表达式,它可以工作,但我需要使用一个变量,但当我在表达式中使用变量时,它就不起作用了。在</p> <p>如果我使用这个代码:</p> <pre><code>xml = etree.parse(fullpath).getroot() tree = etree.ElementTree(xml) nsmap = {'xis' : 'http://www.xchanging.com/ACORD4ALLEDI/1', 'ns' : 'http://www.ACORD.org/standards/Jv-Ins-Reinsurance/1' } p = tree.xpath('//xis:Line', namespaces=nsmap) print (p) for e in p: print(e.tag, e.text) </code></pre> <p>它按我的要求工作,<code>print(p)</code>返回</p> ^{pr2}$ <p>但如果我把它改成:</p> <pre><code>xml = etree.parse(fullpath).getroot() tree = etree.ElementTree(xml) nsmap = {'xis' : 'http://www.xchanging.com/ACORD4ALLEDI/1', 'ns' : 'http://www.ACORD.org/standards/Jv-Ins-Reinsurance/1' } header = 'Jv-Ins-Reinsurance' ns = 'xis:' path = "'//" + ns + header + "'" p = tree.xpath('%s' % path, namespaces=nsmap) print ('p = %s' % p) for e in p: print(e.tag, e.text) </code></pre> <p><code>print(p)</code>返回:</p> <pre><code>p = //xis:Jv-Ins-Reinsurance </code></pre> <p>我得到一个错误:<code>AttributeError: 'str' object has no attribute 'tag'</code>。在</p> <p>我该怎么做?在</p> <p>谢谢</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>你能试着去掉单引号吗?我认为您在<code>path</code>变量中引用的太多了。我只需要使用<code>path = "//" + ns + header</code>。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何更改QTextEdit小部件的颜色
6 回答
如何更改Qthread内Qtimer的间隔?
5 回答
如何更改QTreeView中特定分支的颜色?
7 回答
如何更改QTreeView标题(也称为QHeaderView)的背景色?
8 回答
如何更改QTreeWidget项的父项
3 回答
如何更改QWidget(QTextEdit)在场景中的位置(PyQt)
8 回答
如何更改random.randint的变量?
8 回答
如何更改Raspberry Pi中的默认python版本
8 回答
如何更改readline路径?
9 回答
如何更改recycleview中所选项目的背景色。我还希望它自动选择第一个项目(白色背景)
6 回答
如何更改regplot()的点大小,seaborn的散点图函数(python)
2 回答
如何更改relplot中置信区间的透明度?
7 回答
如何更改reportlab画布对象的文件名?
5 回答
如何更改RequestsOAuthlib中的时间戳和nonce?
9 回答
如何更改Resnet上的频道数,使其仅在黑白图像上工作?
8 回答
如何更改RetrieveUpdatedStroyaPivi中序列化数据的值
9 回答
如何更改RGB图像中区域的不透明度(numpy,cv2)
10 回答
如何更改robot日志/报告文件的名称和文件夹?
7 回答
如何更改RotatingFileHandler在Python中命名文件的方式?
9 回答
如何更改RS4类属性rpy2的默认值
4 回答