我正在尝试获取DTD元素的属性以获取其默认值,但attributes()始终返回空列表。这是代码:
#!/usr/bin/python3 -BEOObbs
# coding=utf-8
import io, lxml.etree
xml = lxml.etree.parse(io.BytesIO(b'''<?xml
version='1.1'
encoding='utf-8'
?>
<!DOCTYPE root [
<!ATTLIST test
attr (A | B | C) 'B'
>
<!ELEMENT test (#PCDATA)>
<!ELEMENT root (test)*>
]>
<root></root>'''))
element = xml.docinfo.internalDTD.elements()[0]
print(element.name)
print(element.attributes())
结果如下:
sworddragon@ubuntu:~/tmp$ ./test.py
test
[]
我想知道这里有什么问题。
答案 0 :(得分:1)
我已为此打开了一张票(https://bugs.launchpad.net/lxml/+bug/1266171),他们已经确认这是一个错误,甚至将修复程序提交到git存储库的主树中,因此更改将在最终的3.3.0版本中发布lxml。