3. XML文書を読む2
XML DOM XSLT 3章 XML文書を読む2
- 3.1. NodeList
- 3.2. Element
- 3.3. NamedNodeMap
3.1. NodeList
Nodeのメソッドに"getChildNodes()"というのがあります。これは、あるノードの子ノードのリストを返すメソッドで、戻り値の型はNodeListになります。NodeListには、以下の2つのメソッドが用意されています。
メソッド | 内容 |
---|---|
public Node item(int index) |
引数に指定されたインデックスのノードを返す。指定されたインデックスが、子ノードの数以上であった場合、nullが返される。最初の子ノードを取得する場合は"0"を指定する。 |
public int getLength() | リストにあるノードの数を取得する。 |
2章のプログラムをNodeListを使用して記述すると以下のようになります。
1 import java.io.*; 2 import org.w3c.dom.Document; 3 import org.w3c.dom.Node; 4 import org.w3c.dom.NodeList; 5 import javax.xml.parsers.*; 6 7 public class NodeListSample{ 8 9 public static void main(String args[]) throws Exception{ 10 11 Document document= DocumentBuilderFactory 12 .newInstance() 13 .newDocumentBuilder() 14 .parse(new File("employee.xml")); 15 16 Node node=document.getDocumentElement(); 17 18 NodeList childNodes=node.getChildNodes(); 19 for(int i=0;i<childNodes.getLength();i++){ 20 short type=childNodes.item(i).getNodeType(); 21 String typeStr=""; 22 switch( type){ 23 case Node.ATTRIBUTE_NODE: 24 typeStr +="属性"; 25 break; ... 59 } 60 61 System.out.println(i+"番目の子ノードは"+typeStr+"です。"); 62 63 } 64 65 } 66 67 }
18行目で最初の子供要素を取得する代わりに、子ノードのリストを取得しています。19-63行目で、子ノードの数だけ、子ノードの型をチェックし、コンソールに表示しています。