「Java」org.w3c.domクラスを使用してXML文書を生成する方法

説明
1.org.w3c.dom.DOMImplementation.createDocument(String namespaceURI, String qualifiedName,
DocumentType doctype) throws DOMException
指定された型のDOM Documentオブジェクトとその文書要素を作成します。

2.org.w3c.dom.Document.createElement(String tagName) throws DOMException
指定された型のDOM Documentオブジェクトとその文書要素を作成します。

3.Element getDocumentElement()
文書の文書要素になっている子ノードへの直接アクセス

4.org.w3c.dom.Node.appendChild(Node newChild) throws DOMException
ノードnewChildをこのノードの子のリストの末尾に追加します。

Javaコード

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
package com.arkgame.study;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.DOMImplementation;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
public class CreateXmlSample {
public static void main(String[] args) {
// DocumentBuilderFactoryの新しいインスタンスを取得
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
try {
builder = factory.newDocumentBuilder();
// DOMImplementationの新しいインスタンスの取得
DOMImplementation domImpl = builder.getDOMImplementation();
// 指定された型のDOM Documentオブジェクトとその文書要素を作成
Document document = domImpl.createDocument("", "empInfo", null);
// 文書の文書要素になっている子ノードへの直接アクセスを可能にする
Element root = document.getDocumentElement();
// 指定された型の要素を作成 city
Element cityNode = document.createElement("city");
// 指定された文字列を持つTextノードを作成
cityNode.appendChild(document.createTextNode("tokyo"));
root.appendChild(cityNode);
// 指定された型の要素を作成 employee
Element empNode = document.createElement("employee");
// 指定された文字列を持つTextノードを作成
empNode.appendChild(document.createTextNode("yamada"));
root.appendChild(empNode);
// 指定された型の要素を作成 age
Element ageNode = document.createElement("age");
// 指定された文字列を持つTextノードを作成
ageNode.appendChild(document.createTextNode("23"));
root.appendChild(ageNode);
// TransformerFactoryの新しいインスタンスを取得
TransformerFactory transFactory = TransformerFactory.newInstance();
Transformer transformer;
transformer = transFactory.newTransformer();
// DOMノードで新しい入力ソースを作成
DOMSource source = new DOMSource(document);
File cftXml = new File("C:\\data\\test.xml");
FileOutputStream os;
os = new FileOutputStream(cftXml);
// バイト・ストリームからStreamResultを構築
StreamResult result = new StreamResult(os);
// XML SourceをResultに変換
transformer.transform(source, result);
} catch (ParserConfigurationException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
} catch (TransformerConfigurationException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
} catch (TransformerException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
}
}
package com.arkgame.study; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.DOMImplementation; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.DocumentBuilder; import javax.xml.transform.TransformerFactory; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; public class CreateXmlSample { public static void main(String[] args) { // DocumentBuilderFactoryの新しいインスタンスを取得 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder; try { builder = factory.newDocumentBuilder(); // DOMImplementationの新しいインスタンスの取得 DOMImplementation domImpl = builder.getDOMImplementation(); // 指定された型のDOM Documentオブジェクトとその文書要素を作成 Document document = domImpl.createDocument("", "empInfo", null); // 文書の文書要素になっている子ノードへの直接アクセスを可能にする Element root = document.getDocumentElement(); // 指定された型の要素を作成 city Element cityNode = document.createElement("city"); // 指定された文字列を持つTextノードを作成 cityNode.appendChild(document.createTextNode("tokyo")); root.appendChild(cityNode); // 指定された型の要素を作成 employee Element empNode = document.createElement("employee"); // 指定された文字列を持つTextノードを作成 empNode.appendChild(document.createTextNode("yamada")); root.appendChild(empNode); // 指定された型の要素を作成 age Element ageNode = document.createElement("age"); // 指定された文字列を持つTextノードを作成 ageNode.appendChild(document.createTextNode("23")); root.appendChild(ageNode); // TransformerFactoryの新しいインスタンスを取得 TransformerFactory transFactory = TransformerFactory.newInstance(); Transformer transformer; transformer = transFactory.newTransformer(); // DOMノードで新しい入力ソースを作成 DOMSource source = new DOMSource(document); File cftXml = new File("C:\\data\\test.xml"); FileOutputStream os; os = new FileOutputStream(cftXml); // バイト・ストリームからStreamResultを構築 StreamResult result = new StreamResult(os); // XML SourceをResultに変換 transformer.transform(source, result); } catch (ParserConfigurationException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } catch (TransformerConfigurationException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } catch (FileNotFoundException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } catch (TransformerException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } } }
package com.arkgame.study;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.DOMImplementation;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.DocumentBuilder;

import javax.xml.transform.TransformerFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

public class CreateXmlSample {

      public static void main(String[] args) {

            // DocumentBuilderFactoryの新しいインスタンスを取得
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder;
            try {
                  builder = factory.newDocumentBuilder();

                  // DOMImplementationの新しいインスタンスの取得
                  DOMImplementation domImpl = builder.getDOMImplementation();
                  // 指定された型のDOM Documentオブジェクトとその文書要素を作成
                  Document document = domImpl.createDocument("", "empInfo", null);
                  // 文書の文書要素になっている子ノードへの直接アクセスを可能にする
                  Element root = document.getDocumentElement();

                  // 指定された型の要素を作成 city
                  Element cityNode = document.createElement("city");
                  // 指定された文字列を持つTextノードを作成
                  cityNode.appendChild(document.createTextNode("tokyo"));
                  root.appendChild(cityNode);

                  // 指定された型の要素を作成 employee
                  Element empNode = document.createElement("employee");
                  // 指定された文字列を持つTextノードを作成
                  empNode.appendChild(document.createTextNode("yamada"));
                  root.appendChild(empNode);

                  // 指定された型の要素を作成 age
                  Element ageNode = document.createElement("age");
                  // 指定された文字列を持つTextノードを作成
                  ageNode.appendChild(document.createTextNode("23"));
                  root.appendChild(ageNode);

                  // TransformerFactoryの新しいインスタンスを取得
                  TransformerFactory transFactory = TransformerFactory.newInstance();
                  Transformer transformer;
                  transformer = transFactory.newTransformer();

                  // DOMノードで新しい入力ソースを作成
                  DOMSource source = new DOMSource(document);
                  File cftXml = new File("C:\\data\\test.xml");
                  FileOutputStream os;

                  os = new FileOutputStream(cftXml);
                  // バイト・ストリームからStreamResultを構築
                  StreamResult result = new StreamResult(os);
                  // XML SourceをResultに変換
                  transformer.transform(source, result);
            } catch (ParserConfigurationException e) {
                  // TODO 自動生成された catch ブロック
                  e.printStackTrace();
            } catch (TransformerConfigurationException e) {
                  // TODO 自動生成された catch ブロック
                  e.printStackTrace();
            } catch (FileNotFoundException e) {
                  // TODO 自動生成された catch ブロック
                  e.printStackTrace();
            } catch (TransformerException e) {
                  // TODO 自動生成された catch ブロック
                  e.printStackTrace();
            }

      }

}

実行結果
C:\data\test.xml
内容
<?xml version="1.0″ encoding="UTF-8″ standalone="no"?><empInfo><city>tokyo</city><employee>yamada</employee><age>23</age></empInfo>

Java

Posted by arkgame