0
我正在使用iterparse解析xml文檔。當使用默認名稱空間解析xml時,Iterparse返回空迭代
from lxml import etree
import tempfile
content = """<root xmlns="blah.com">
<foo>
<attribute id="3" />
</foo>
<foo>
<structure>
<baz>
<x>g</x>
</baz>
</structure>
</foo>
</root>"""
src_file = tempfile.NamedTemporaryFile()
src_file.write(content)
src_file.flush()
context = etree.iterparse(
src_file.name,
events=("end",),
tag="foo",
)
for event, element in context:
print event
print element
- 預期結果:我看到一些
end
事件 - 實際結果:沒有任何反應
有幾件事情我想:
- 如果我刪除從命名空間該XML,它工作正常。
- 如果我用一個像
xlmns:t="blah.com"
這樣的前綴的命名空間,它也可以正常工作。 - 刪除
tag="foo"
也使它工作正常。
但是我想同時使用基本標記和默認命名空間。這是一個iterparse的bug嗎?我在做別的事嗎?
編輯:編輯代碼,使其無需標識錯誤即可複製粘貼。
謝謝!這樣可行。 –