簡體   English   中英

Python ElementTree“無效的后代”錯誤

[英]Python ElementTree “Invalid descendant” error

我有一個XML文件, foo.xml

<foo>
    <bar>
        <baz phrase="hello"/>
    </bar>
    <quux phrase="goodbye"/>
</foo>

我用這個Python代碼解析它:

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>

現在我想找到帶有phrase屬性的所有元素,所以我嘗試'.//[@phrase]'但是然后findall()失敗了:

SyntaxError: invalid descendant

我不明白什么是錯的。 如果我使用內置的xml.etree.ElementTree而不是lxml則會出現相同的錯誤消息。

請注意'.//'有效,但返回bar, baz, quux ,我不想要bar因為它沒有phrase屬性。

你需要*作為".//*[@phrase]"標簽名稱

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM