Java Tips – DOM – XMLドキュメントのDOCUMENTノードの情報に取得するには
DOM(Document Object Model)を使用して、XMLドキュメントのDOCUMENTノードの情報に取得する手順は以下の通りです。
- DOMParserクラスのparseメソッドで、XMLドキュメントのパース処理を行います。
- DOMParserクラスのgetDocumentメソッドで、DOCUMENTノードを取得します。
パース処理するXMLドキュメントは以下の通りです。
<?xml version="1.0" encoding="UTF-8"?><root/>
package net.tk_factory.example.xml.dom; import java.io.IOException; import org.apache.log4j.Logger; import org.apache.xerces.parsers.DOMParser; import org.w3c.dom.Document; import org.xml.sax.SAXException; import net.tk_factory.example.AbstractExample; /** * DOM(Document Object Model)を使用したサンプルプログラムです。<br/> * <br/> * <b>内容</b> * <ol type="1"> * <li>DOCUMENTノードの情報を取得します。</li> * </ol> * * @author Takafumi Kondo (TK Factory) */ public class ExampleParseXMLDocument extends AbstractExample { /** クラス名 */ private static final String CLASS_NAME = ExampleParseXMLDocument.class.getSimpleName(); /** ロガー */ private static final Logger LOGGER = Logger.getLogger(ExampleParseXMLDocument.class.getName()); /** 入力ファイル名 */ private static final String IN_FILE_NAME = EXAMPLE_FILE_DIRECTORY + CLASS_NAME + ".xml"; /** * ExampleParseXMLDocumentオブジェクトを構築すると、 * UnsupportedOperationExceptionがスローされます。<br/> */ protected ExampleParseXMLDocument() { throw new UnsupportedOperationException(); } /** * mainメソッドです。<br/> * * @param args 引数 */ public static void main(String[] args) { LOGGER.info("[START]" + CLASS_NAME); try { //パーサを生成する DOMParser parser = new DOMParser(); //XMLファイルをパースする parser.parse(IN_FILE_NAME); //DOCUMENTノードを取得する Document document = parser.getDocument(); //DOCUMENTノードのノード名を取得する LOGGER.debug(document.getNodeName()); //DOCUMENTノードのノードタイプを取得する LOGGER.debug(document.getNodeType()); } catch (SAXException ex) { //XMLファイルのパースに失敗した場合 LOGGER.error(getStackTrace(ex)); } catch (IOException ex) { //入出力例外が発生した場合 LOGGER.error(getStackTrace(ex)); } LOGGER.info("[E N D]" + CLASS_NAME); } }
上記のサンプルプログラムの実行結果は以下の通りです。
2010/04/22 21:49:34.373 [INFO ]: 0:[START]ExampleParseXMLDocument 2010/04/22 21:49:34.373 [DEBUG]: 0:#document 2010/04/22 21:49:34.373 [DEBUG]: 0:9 2010/04/22 21:49:34.373 [INFO ]: 0:[E N D]ExampleParseXMLDocument
関連記事
ソースを見直し、一部、修正しました。