您的位置:首页 > 其它

xml解析时getElementById方法返回为null

2016-04-11 10:19 459 查看
Document有一个getElementById的方法,在文档中的解释是:

    返回具有带给定值的 ID 属性的 
Element
。如果不存在此类元素,则此方法返回 
null
。如果多个元素具有带该值的 ID 属性,返回哪一个元素是不确定的。

注: 具有名称 "ID" 或 "id" 的属性不属于类型 ID,除非这样定义。

 

<root>

    <test id="test">

        haha

    </test>

</root>

上面是一个简单的xml实例,发现在java中通过getElementById("test")的方法,获取到的是一个null值,

一查询才知道,正如文档中所说,即使设置id属性,Document也是无法识别的,因为不属于类型ID

必须要在xml有相关定义。

这时就需要dtd出场了。声明一个简单的内部样式即可解决问题:

<!DOCTYPE root [
  <!ELEMENT root ANY>    
  <!ATTLIST test  id ID #REQUIRED >
]>
在xml头部加上这个,最后一行的意思是将test元素中的id属性设置为类型ID
这样,再在java执行getElementById("test")就可以获取test元素了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  getElementById Document