java dom创建xml文件_Java中初学用DOM创建XML文件小结

import java.io.*;

import javax.xml.parsers.*;

import javax.xml.parsers.*;

import javax.xml.transform.*;

import javax.xml.transform.stream.*;

import javax.xml.transform.dom.*;

import org.xml.sax.*;

import org.w3c.dom.*;

public class WriteXML {

? public WriteXML(String fn) {

??? /行26-38创建了文档对象//

??? Document xmlDoc=null;

??? try {

????? //如果将这些工厂、Builder都单独获得实例将有更大的配置灵活性

????? //但这里方便起见直接得到文档

????? xmlDoc = DocumentBuilderFactory.newInstance().

????????? newDocumentBuilder().newDocument();

??? }

??? catch (FactoryConfigurationError ex) {

????? ex.printStackTrace();

??? }

??? catch (ParserConfigurationException ex) {

????? ex.printStackTrace();

??? }

??? 形成DOM树

??? //下面两行加入了根节点

??? Element bookRoot=xmlDoc.createElement("book");

??? xmlDoc.appendChild(bookRoot);

??? //创建子节点

??? Element title=xmlDoc.createElement("title");//节点标记名称

??? title.appendChild(xmlDoc.createTextNode("My Story"));//节点文字内容

??? bookRoot.appendChild(title);

??? //创建带属性节点

??? Element author=xmlDoc.createElement("author");

??? author.appendChild(xmlDoc.createTextNode("John Smith"));//普通文字内容

??? Attr gender=xmlDoc.createAttribute("gender");//属性名称

??? gender.setValue("M");//属性值

??? author.setAttributeNode(gender);//将属性附加到节点

??? /*上面三行和这一行的效果一样:

???? author.setAttribute("gender","M");

??? */

??? bookRoot.appendChild(author);

??? //创建注释

??? Comment cmnt=xmlDoc.createComment("It's just a comment.");

??? bookRoot.appendChild(cmnt);

??? /写磁盘/

??? Source xmlSrc=new DOMSource(xmlDoc);//获得源码

??? //获得输出流

??? Result rslt=null;

??? try {

????? rslt = new StreamResult(new FileOutputStream(fn));

??? }

??? catch (FileNotFoundException ex1) {

????? ex1.printStackTrace();

??? }

??? //转换写入

??? Transformer tr=null;

??? try {

????? tr = TransformerFactory.newInstance().newTransformer();

????? tr.transform(xmlSrc, rslt);//将源码转换入流

??? }

??? catch (TransformerException ex2) {

????? ex2.printStackTrace();

??? }

??? catch (TransformerFactoryConfigurationError ex2) {

????? ex2.printStackTrace();

??? }

? }

? public static void main(String[] args) {

??? WriteXML xmlWriter = new WriteXML("aBook.xml");//指定文件名

? }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值