微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何为具有特定属性值的xml元素选择数据?

鉴于:

<foo>
 <bar key="true">text1</bar>
 <bar key="false">text2</bar>
 <bar key="true">text3</bar>
 <bar key="true">text4</bar>
</foo>

我想获取key属性=“false”的bar元素的文本.

我的应用程序是GAE上的Python 2.5.5. XML不是真正的xml,但我可以将其作为ElementTree加载并正常获取数据.

代码示例:

result = urllib2.urlopen(url).read()
xml = ElementTree.fromstring(result)
str = xml.find("./bar").attrib['key']

获得第一个价值.我已经尝试了各种xpath查询,我认为应该可以工作,但我显然有错误的语法.

更新:

str = xml.findtext("./bar[@key='false']")

引发错误

File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/xml/etree/ElementPath.py",line 93,in __init__
    "expected path separator (%s)" % (op or tag)
SyntaxError: expected path separator ([)

解决方法

我可能错了,但我不认为“./bar[@key=’false’]”符号在Python 2.5.5中起作用(或者至少不是随附的ElementTree).我在Python 2.6.5中观察到了同样的问题,但它确实在Python 2.7.1中有效.我想你将不得不使用另一个库或尝试使用Python 2.7的“实验性”GAE.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。