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行目で、子ノードの数だけ、子ノードの型をチェックし、コンソールに表示しています。

