DOM解析器生成XML文件
java代码如下
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.File;
public class CreateXML {
public void createxml() throws ParserConfigurationException {
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();//创建 DOM 解析器的工厂实例
DocumentBuilder db=dbf.newDocumentBuilder();//创建DOM 解析器对象
Document document=db.newDocument();//创建document
document.setXmlStandalone(true);//设置standalone为yes,不显示
Element bookstore=document.createElement("bookStore");//创建根节点
Element book=document.createElement("book");//创建book子节点
Element name=document.createElement("name");//创建name子节点
Element price =document.createElement("price");//创建price子节点
Element year=document.createElement("year");//创建year子节点
book.appendChild(name);//将name节点添加到book节点中
name.setTextContent("小王子");//设置name值
book.appendChild(price);//将price节点添加到book节点中
price.setTextContent("23");//设置price值
book.appendChild(year);//将year节点添加到book节点中
year.setTextContent("1999");//设置year值
book.setAttribute("id","1");//book子节点属性值
bookstore.appendChild(book);//将book节点添加到根节点中
document.appendChild(bookstore);//将bookstore根节点添加到DOM树中
TransformerFactory tff=TransformerFactory.newInstance();//创建格式转换工厂实例
try {
Transformer tf=tff.newTransformer();//创建转换器实例
tf.setOutputProperty(OutputKeys.INDENT,"yes");//利用转换器实现xml文件换行
tf.transform(new DOMSource(document),new StreamResult(new File("createxml.xml")));//将document保存到文件中
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws ParserConfigurationException {
CreateXML createXML=new CreateXML();
createXML.createxml();
}
}
对应生成的XML文件如下
<?xml version="1.0" encoding="UTF-8"?><bookStore>
<book id="1">
<name>小王子</name>
<price>23</price>
<year>1999</year>
</book>
</bookStore>