怎么做?创建了文档和元素:
import xml.dom.minidom as d
a=d.Document()
b=a.createElement('test')
setIdAttribute不工作:(
b.setIdAttribute('something')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.6/xml/dom/minidom.py", line 835, in setIdAttribute
self.setIdAttributeNode(idAttr)
File "/usr/lib/python2.6/xml/dom/minidom.py", line 843, in setIdAttributeNode
raise xml.dom.NotFoundErr()
xml.dom.NotFoundErr
如果我手动设置,getElementById找不到它。
b.setAttribute('id', 'something')
a.getElementById('something')
我该怎么办?
将id属性的名称添加到DTD应该会有帮助。例如,如果希望every将
id
设置为所有<div>
元素的id属性,则可以如下设置DTD:<!DOCTYPE div [<!ATTLIST div id ID #IMPLIED>]>
这是一个工作示例:
这里有两件事不对。
Document.getElementById
将只找到文档中实际存在的元素。在这里,您创建了b
,但实际上并没有将其添加到文档中。(在JavaScript中完全相同。)必须使用
setIdAttribute
将id
标记为ID属性。(在JavaScript中不需要这样做,因为在HTML文档中,名为id
的属性在逻辑上被自动视为ID属性。但是XML不会自动将名为id
的属性视为ID;您可以显式声明它们在DTD中,也可以为每个ID属性单独调用setIdAttribute
。我也不确定DTD是否能与minidom一起工作,minidom不是完全的DOM实现。)就像这样:
之后,
getElementById
工作:相关问题 更多 >
编程相关推荐