为了进行
getElementById()调用,
document必须知道其节点的类型,并且目标节点必须是XML
ID类型,方法才能找到它。它通过关联的架构了解其元素的类型。如果未设置架构,或者未将
id属性声明为XML
ID类型,
getElementById()则将永远找不到它。
我的猜测是您的文档不知道
p元素的
id属性是XML
ID类型(是吗?)。您可以使用
getChildNodes()和其他DOM遍历功能导航到DOM中的节点,并尝试调用
Attr.isId()id属性来确定。
从getElementById
javadoc:
DOM实现应使用属性Attr.isId来确定属性是否为ID类型。
注意:除非如此定义,否则名称为“ ID”或“ id”的属性不是ID类型。
如果要使用
documentBuilderXML将XML解析为DOM,请确保
setSchema(schema)在调用newdocumentBuilder()之前先调用documentBuilderFactory,以确保从工厂获得的生成器知道元素类型。



