「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コード
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>