DOM和SAX方式是JAVA官方提供的方式,可以生成一个XML文件来存储信息,DOM4J和JDOM是非官方的方式,可以生成一个RSS文件
一、DOM方式生成XML文档
DOMTest:
public class DOMTest {
/*生成xml*/
public void createXML() throws Exception{
DocumentBuilder db=getDocumentBuilder();
Document document=db.newDocument();
Element bookstore=document.createElement("bookStore");
//向bookstore根节点中添加字节点book
Element book=document.createElement("book");
Element name=document.createElement("name");
book.appendChild(name);
name.setTextContent("小王子");
book.setAttribute("id", "1");
//将book节点添加到bookstore根节点中
bookstore.appendChild(book);
//将bookstore节点(已经包含了book),添加到dom树中
document.appendChild(bookstore);
//创建TransformerFactory对象
TransformerFactory tff=TransformerFactory.newInstance();
//创建Transformer对象
Transformer tf=tff.newTransformer();
//换行文件内容
tf.setOutputProperty(OutputKeys.INDENT, "yes");
tf.transform(new DOMSource(document), new StreamResult(new File("boos1.xml")));
}
public static void main(String []args) throws Exception{
DOMTest test=new DOMTest();
test .createXML();
}
}
运行结果为:
创建之后的books1.xml的显示内容:
二、SAX方式生成XML文档
/**
* @Decription TODO sax方法创建一个xml文档
*/
public void saxCreateXml(){
//1、创建一个SAXTransformerFactory一个对象
SAXTransformerFactory sf = (SAXTransformerFactory) SAXTransformerFactory.newInstance();
OutputStream in =null;
try {
//2、通过SAXTransformerFactory创建一个TransformerHandler对象
TransformerHandler handler = sf.newTransformerHandler();
//3、通过TransformerHandler对象获取Transformer对象(用于设置xml输出的样式和头)
Transformer transformer = handler.getTransformer();
//设置没有其他的DTD(Document Type Defination 文档类型定义)规范
transformer.setOutputProperty(OutputKeys.STANDALONE, "yes");
//设置编码格式,显式的显示在<?xml version="1.0" ?>中
transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
//设置换行
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
//文件输出
File file =new File("LocListSax.xml");
//确保file是存在的
if(!file.exists()){
if(!file.createNewFile()){
throw new FileNotFoundException("文件创建失败!");
}
}
//4、创建输出流OutputStream对象
in = new FileOutputStream(file);
//5、创建流Result对象
Result result = new StreamResult(in);
//6、关联result,此时有了生成元素的方法(handler提供的方法)和装元素