以DOM树的方式来进行xml文件对象的生成操作

import java.io.File;
import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class CreateDomXml {
//以DOM树的方式来进行一个xml文件对象的生成操作
	//用于进行一个documentBuilder实例化对象的获取操作
	public DocumentBuilder getDocumentBuilder()
	{
		//1:创建一个documentBuilderFactory实例化对象
		DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
		//2:建立一个documentBuilder实例化对象
		DocumentBuilder db=null;
		try {
			db=dbf.newDocumentBuilder();
		} catch (ParserConfigurationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return db;
	}
	public void createXML()
	{//用于进行一个xml文件对象的创建操作
		DocumentBuilder db=getDocumentBuilder();
		Document document=db.newDocument();//获取一个document实例化对象,相当于将要存放到xml文件对象当中的一颗dom树
		Element bookStore=document.createElement("bookStore");//通过DOM树对象来创建一个标签对象bookStore
		//向根节点bookstores对象当中进行子节点对象的添加操作
		Element book=document.createElement("book");//根据DOM树节点对象来创建一个新的节点对象
		bookStore.appendChild(book);//将book节点对象添加到bookstores根节点对象当中去
		//向所创建的book子节点对象当中进行属性的添加操作
		book.setAttribute("id","1");
		//向book节点对象当中进行子节点对象的添加
		Element name=document.createElement("name");//通过DOM树实例对象来创建一个name子节点对象
		book.appendChild(name);//将name节点对象做为book节点对象的子节点来进行添加操作
		//在name标签对象的文本去进行内容的添加操作
		name.setTextContent("冰与火之歌");//即在name标签对象之间来进行数据信息的添加操作
		//在book标签对象当中进行author子标签对象的添加操作
		Element author=document.createElement("author");
		author.setTextContent("乔治马丁");
		book.appendChild(author);//将author标签对象做为book标签对象的子标签来进行添加操作
		//在book标签对象当中进行year子标签对象的添加操作
		Element year=document.createElement("year");
		year.setTextContent("2014");
		book.appendChild(year);
		//在book标签对象当中进行price字标签对象的添加操作
		Element price=document.createElement("price");
		price.setTextContent("89");
		
		document.appendChild(bookStore);//将当前所创建的节点对象添加到DOM树对象当中作为DOM树对象的根节点
		
	//将当前所建立的book树对象转化为一个xml文件对象
		TransformerFactory tff=TransformerFactory.newInstance();
		try {
		//创建Transformer对象	
			Transformer tf=tff.newTransformer();
			tf.setOutputProperty(OutputKeys.INDENT, "yes");//在将DOM树输出到指定的xml文件对象时,DOM树当中的属性会进行自动换行操作
		//通过transform对象来将DOM树通过输出流(StreamResult)来将其存放到xml文件对象当中去	
			tf.transform(new DOMSource(document),new StreamResult(new File("xml文件/books1.xml")));//在指定的路径下将会生成对应的xml文件对象
		} catch (TransformerConfigurationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		catch (TransformerException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	public static void main(String[] args) {
		CreateDomXml test=new CreateDomXml();
		test.createXML();//在指定的路径下进行xml文件对象的创建操作
	}

}
运行之后所生成的xml文件对象为:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值