package mytest;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import org.w3c.dom.DOMException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Text;
import com.sun.org.apache.xerces.internal.dom.DOMImplementationImpl;
import com.sun.org.apache.xml.internal.serialize.OutputFormat;
import com.sun.org.apache.xml.internal.serialize.XMLSerializer;
public class myTest {
public static void main(String[] args) {
try {
// 新規ドキュメントのツリーを作成する
DOMImplementationImpl domimpl = new DOMImplementationImpl();
Document doc = domimpl.createDocument(null, "Myself", null);
Element root = doc.getDocumentElement();
// 子要素を追加する
root.appendChild(createNameElement(doc, "A001", "うえだ", "上田", "U", 1000));
root.appendChild(createWhereElement(doc, "A002", "ながの", "長野", "N", 1200));
printXmlDocument("testXml.xml", doc);
System.out.println(doc);
} catch (DOMException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
private static Element createWhereElement(Document doc, String string, String string2, String string3,
String string4, int i) {
Element element_where = doc.createElement("where");
element_where.appendChild(createElement(doc, "country", "name", "country", "China"));
element_where.appendChild(createWhereElement_sheng(doc, string, string2, string3, string4, i));
return element_where;
}
private static Element createWhereElement_sheng(Document doc, String string, String string2, String string3,
String string4, int i) {
Element element_where_sheng = doc.createElement("sheng");
element_where_sheng.appendChild(createElement(doc, "sheng", "name", "shengfen", "henan"));
element_where_sheng.appendChild(createElement(doc, "shiqu", "name", "shiqu", "zhumadian"));
return element_where_sheng;
}
/**
*
* @param fileName
*
* @param doc
*
*/
private static void printXmlDocument(String fileName, Document doc) {
try {
// XMLドキュメントの出力ソースを作成する
BufferedWriter bwriter = new BufferedWriter(new FileWriter(fileName));
// 出力書式を制御するOutputFormatオブジェクトを作成する
OutputFormat oform = new OutputFormat(doc, "UTF-8", true);
// XMLSerializerシリアライザを作成する
XMLSerializer serial = new XMLSerializer(bwriter, oform);
// 作成したツリーを書き出す
serial.serialize(doc);
bwriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
*
* @param doc
*
* @param id
*
* @param furigana
*
* @param name
*
* @param initial
*
* @param salary
*
* @return
*
*/
private static Element createNameElement(Document doc, String id, String furigana, String name, String initial,
int salary) {
Element element = doc.createElement("名前");
element.setAttribute("id", id);
element.appendChild(createElement(doc, "名字", "ふりがな", furigana, name));
element.appendChild(createElement(doc, "イニシャル", initial));
element.appendChild(createElement(doc, "給与", salary));
return element;
}
/**
*
* @param doc
*
* @param elementName
*
* @param attributeName
*
* @param attributeValue
*
* @param bodyValue
*
* @return
*
*/
private static Element createElement(Document doc, String elementName, String attributeName, String attributeValue,
String bodyValue) {
Element element = doc.createElement(elementName);
element.setAttribute(attributeName, attributeValue);
Text text = doc.createTextNode(bodyValue);
element.appendChild(text);
return element;
}
/**
*
* @param doc
*
* @param elementName
*
* @param bodyValue
*
* @return
*
*/
private static Element createElement(Document doc, String elementName, String bodyValue) {
Element element = doc.createElement(elementName);
Text text = doc.createTextNode(bodyValue);
element.appendChild(text);
return element;
}
/**
*
* @param doc
*
* @param elementName
*
* @param bodyValue
*
* @return
*
*/
private static Element createElement(Document doc, String elementName, int bodyValue) {
return createElement(doc, elementName, Integer.toString(bodyValue));
}
}
运行结果
<?xml version="1.0" encoding="UTF-8"?>
<Myself>
<名前 id="A001">
<名字 ふりがな="うえだ">上田</名字>
<イニシャル>U</イニシャル>
<給与>1000</給与>
</名前>
<where>
<country name="country">China</country>
<sheng>
<sheng name="shengfen">henan</sheng>
<shiqu name="shiqu">zhumadian</shiqu>
</sheng>
</where>
</Myself>