lxml返回DTD属性的空列表

时间:2014-01-01 10:20:34

标签: python xml lxml dtd

我正在尝试获取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
[]

我想知道这里有什么问题。

1 个答案:

答案 0 :(得分:1)

我已为此打开了一张票(https://bugs.launchpad.net/lxml/+bug/1266171),他们已经确认这是一个错误,甚至将修复程序提交到git存储库的主树中,因此更改将在最终的3.3.0版本中发布lxml。