DOMから特定のIDを検索する

doc.getElementById()をやってもnullしか帰ってこないとき、それは正しく検索できない証拠。
本来はDTDのAttributeのIDがちゃんと定義したうえで、getElementById()すれば一発なんだけど、別の方法として以下がある。
 
①setIdAttribute()する
前もってElementを追加とかしているならば、その時点で
Element.setIdAttribute("id",ture)
としておく。以降はdoc.getElementById()がつかえるようになる。
 
②力技で検索する
無理からやる方法は以下。たとえばの中で特定IDを検索したいとき。

// Document docはparse済みDOM

int idnum = 0;
Stack st = new Stack();
Node root = doc.getDocumentElement();
NodeList childNodes = root.getChildNodes();

for (int i = 0; i < childNodes.getLength(); i++) {
	Node cn = childNodes.item(i);
	if (cn.getNodeName().toLowerCase().equals("g")) {
		if (((Element) cn).getAttribute("id")
			.equals("検索したいID")) {
			st.add((Element) cn);
			idnum++;
		}
	}
}
return st;