Document有一個getElementById的方法,在文檔中的解釋是:
返回具有帶給定值的 ID 屬性的
Element
。如果不存在此類元素,則此方法返回
null
。如果多個元素具有帶該值的 ID 屬性,返回哪一個元素是不確定的。
注: 具有名稱 "ID" 或 "id" 的屬性不屬於類型 ID,除非這樣定義。
<root>
<test id="test">
haha
</test>
</root>
上面是一個簡單的xml實例,發現在java中通過getElementById("test")的方法,獲取到的是一個null值,
上面是一個簡單的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元素了。