//创建一个DocumentBuilderFactory对象
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
//创建一个DocumentBuilder对象
DocumentBuilder db = null;
try {
db = dbf.newDocumentBuilder();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return db;
public void creatXML() {
DocumentBuilder db = getDocumentBuilder();
Document document = db.newDocument();
Element bookStore = document.createElement("bookstore");
//向bookstore根节点中添加子节点book
Element book = document.createElement("book");
Element name = document.createElement("name");
//Element的nodeValue的返回值为空,所以不能用setNodeValue设置文本值,可以用setTextContent
// name.setNodeValue("小王子");
name.setTextContent("小王子");
book.appendChild(name);
book.setAttribute("id", "1");
//将book节点添加到bookstore根节点中
bookStore.appendChild(book);
//将bookstore根节点(已经包含book节点)添加到dom树中
document.appendChild(bookStore);
/*
* 生成xml文件
*/
//创建TransformerFactory对象
TransformerFactory tff = TransformerFactory.newInstance();
try {
//创建Transformer对象
Transformer tf = tff.newTransformer();
//通过Transformer对象的setOutputProperty方法实现换行。OutputKeys.INDENT(是否换行)
tf.setOutputProperty(OutputKeys.INDENT, "yes");
//通过Transformer对象的transform方法将代码中的dom树转换为xml文件
tf.transform(new DOMSource(document), new StreamResult("books1.xml"));
} catch (TransformerConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
生成的xml文档
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<bookstore>
<book id="1">
<name>小王子</name>
</book>
</bookstore>
standalone=“yes” 说明当前的xml文件是没有dtd和schema作为他的说明文档的
standalone=“no” 说明是有scheme和dtd文件解释说明它的内容允许有哪些值以及值的一些形式
//通过setXmlStandalone的方法,将standalone设为yes,并且不显示
document.setXmlStandalone(true);