Дано:
<foo>
<bar key="true">text1</bar>
<bar key="false">text2</bar>
<bar key="true">text3</bar>
<bar key="true">text4</bar>
</foo>
Я хочу получить текст для элемента bar, где атрибут ключа = "false".
Мое приложение Python 2.5.5 для GAE. XML не является истинным xml, но я могу загрузить его как ElementTree и получать данные в обычном режиме.
Пример кода:
result = urllib2.urlopen(url).read()
xml = ElementTree.fromstring(result)
str = xml.find("./bar").attrib['key']
чтобы получить первое значение. Я пробовал различные запросы xpath, которые, по моему мнению, должны работать, но у меня явно неправильный синтаксис.
UPDATE:
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 ([)