2
我有一個XML文件,:Python的ElementTree的 「無效的後裔」 錯誤
import lxml.etree as ET
# or if you don't have lxml: import xml.etree.ElementTree as ET
doc = ET.parse('foo.xml').getroot()
for elem in doc.findall('*[@phrase]'):
print(elem)
這給了我:
<Element 'quux' at 0x7fa1419a1d18>
<foo>
<bar>
<baz phrase="hello"/>
</bar>
<quux phrase="goodbye"/>
</foo>
我與這個Python代碼解析它
現在我想查找所有具有phrase
屬性的元素,所以我嘗試了'.//[@phrase]'
,但是th en findall()
失敗:
SyntaxError: invalid descendant
我不明白什麼是錯的。如果我使用內置的xml.etree.ElementTree
而不是lxml
,則會出現相同的錯誤消息。
請注意,'.//'
的作品,但返回bar, baz, quux
,我不想bar
,因爲它沒有phrase
屬性。
需要'*''中的短語.//*[@]' – furas
@furas這應該是一個答案 –