目次へ

2.2. Document

XML文書をDOMで操作するには、まずDocumentインタフェースを実装したオブジェクトを取得する必要があります。Documentインタフェースは、XML文書そのものを表します。以下は前章で例に挙げたプログラムです。

  import java.io.*;
  import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 import javax.xml.parsers.*;
 
 public class SimpleDOMSample{
   
   public static void main(String args[]) throws Exception{
 
     Document document= DocumentBuilderFactory
                          .newInstance()
                          .newDocumentBuilder()
                          .parse(new File("helloWorld.xml"));


     Node node=document.getDocumentElement();
     Node childNode=node.getFirstChild()

     System.out.println(childNode);
  }

}

10-14行目でDocumentを取得しています。まず、11行目でDocumentBuilderFactoryのインスタンスを取得しています。13行目でDocumentBuilderFactoryのnewDocumentBuilderメソッドを使用して、DocumentBuilderオブジェクトを取得しています。DocumentBuilderオブジェクトは、DOMのDocumentを取得するオブジェクトです。DocumentBuilderのparseメソッドによってDocumentを取得します。

DocumentBuilderのparseメソッドには、以下の5種類があります。

  • parse(InputStream is)
    パラメータに指定されたInputStreamからXML文書を読み取り、Documentを作成する。
  • parse(InputStream is,String systemId)
    パラメータに指定されたInputStreamからXML文書を読み取り、Documentを作成する。2番目の引数では、相対URIを解決するためのベースを指定します。
  • parse(String uri)
    パラメータで指定されたURIの内容を読み取り、Documentを作成する。
  • parse(File f)
    パラメータで指定されたファイルを読み取り、Documentを作成する。
  • parse(InputSource is)
    パラメータで指定されたInputSourceからXML文書を読み取り、Documentを作成する。

このプログラムでは、3番目のparseメソッドを使用して、Documentを取得しています。

16行目でルート要素を取得しています。ルート要素はgetDocumentElement()メソッドにより取得します。戻り値はElementになります。このように、Documentは最大1個のElementを子ノードとして持ちます。この他にも、Documentの子供ノードには、以下のものがあります。子ノードはgetChildNodes()メソッドでも取得可能です。

ノードのタイプ 内容 取得メソッド 備考
Element ルート要素 getDocumentElement() 5行目"webapp" 最大1個
DocumentType 文書タイプ getDoctype() 2-4行目 最大1個
ProcessingInstruction 処理命令      
Comment コメント      

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp
  • シナジーマーケティング研究開発グループブログ