转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6651643.html 

既然能在代码中解析XML文档获取数据,当然也能通过代码动态生成XML文档了。

与解析XML一样,生成XML文档也是用到了那4种方法。

一:DOM方法生成XML

步骤:

1:创建DocumentBuilder:DocumentBuilder builder=new DocumentBuilder();

2:创建dom对象:Document dom=builder.newDocument();

3:创建dom中元素:Element element=dom.createElement("元素名");

4:向元素添加子节点:element.appendChild(childElement);(dom树就是通过不停appendChild形成的)

5:向元素设置属性:element.setAttribute("属性名","属性值");

6:向元素添加文本内容:element.setTextContent("标签间内容");

7:把根元素添加至dom中:dom.appendChild(rootElement);(由于子节点都是添加到根结点下的,所以把根结点添加到dom就相当于把整棵标签树添加进dom了)

8:把dom对象导出到xml文件:

1)创建转换器工厂:TransformerFactory  factory=TransformerFactory.newInstance();

2)由工厂创建转换器实例:Transformer transformer=factory.newTransformer();

3)设置转换格式:transformer.setOutputProperty(属性,属性值);//设置输出到文档时的格式,比如:换行等

4)由转换器把dom资源转换到结果输出流,而结果输出流连接到一个xml文件:transformer.transform(new DOMSourse(dom),new StreamResult(xml_file));

二:SAX方法操作XML

步骤:

1:创建SAX转换器工厂:SAXTransformerFactory  factory=SAXTransformerFactory.newInstance();

2:创建转换handler:TransformerHandler handler=factory.newTransformerHandler();

3:由handler创建转换器:Transformer transformer=handler.getTransformer();

4:设置转换格式:transformer.setOutputProperty(属性,属性值);//设置输出到文档时的格式,比如:换行等

5:创建Result连接到xml文件:Result res=new StreamResult(new FileOutputStream(xml_file));

6:关联result到handler:handler.setResult(res);

7:利用handler操作xml文件:

1)打开dom对象:handler.startDocument();

2)创建元素:handler.startElement(uri,命名空间,元素名,属性列表);//没有则填null

3)创建子结点:handler.startElement(uri,命名空间,子元素名,属性列表);//在一个start与end的元素之间添加的结点就是它的子节点

4)为结点添加属性:上面start的元素名 element.setAttribute("","","属性名","属性值");

5)为结点添加文本内容:在一个element的start与end之间,handler.characters(byte[],start,length);//byte就是文本内容,后面可以进行截取

5)镜像结束元素:hanlder.endElement("","",元素名);//前面有start,操作完这个结点后切记要end,添加镜像结束标签。

6)关闭dom对象:handler.endDocument();

原理:通过result关联到xml文档,通过handler开始一个标签、设置标签属性、添加文本、结束一个标签方法操作result从而改变xml文档内容。

三:JDOM方法生成XML

步骤:创建根结点,由根结点创建dom对象,然后从根结点开始构造dom树,最后输出dom对象到xml文档即可。

1:生成根节点:Element root=new Element(“节点名”);

2:设置根结点属性:root.setAttribute(属性名,属性值);

3:把根作为参数创建dom对象:Document dom=new Document(root);

4:从根结点开始构造dom树:

1)创建结点:Element element=new Element("节点名");

2)设置结点属性:element.setAttribute(属性名,属性值);

3)设置结点文本内容:element.setText(文本内容);

4)添加结点到父节点下:father.addContent(child);

5:dom树构造完毕,进行输出:

1)创建XMLOutputer:XMLOutputer outputer=new XMLOutputer(format);//format参数可选,可以创建一个format对象设置输出格式,比如换行、编码格式等

2)通过outputer把dom对象输出到xml文档:outputer.output(dom,new FileOutputStream(xml_file));

四:DOM4j生成XML

步骤:

1:创建dom对象:Document dom=new Document();

2:创建根节点:Element rooe=dom.addElement("根节点名");

3:为根结点设置属性:element.setAttribute(属性名,属性值);

4:由根结点构建dom树:

1)创建子节点:Element element=father.addElement("节点名");

2)设置结点属性:element.setAttribute(属性名,属性值);

3)设置结点文本内容:element.setText(文本);

5:构建dom树完毕,把dom对象输出到xml文件:

1)创建XMLWriter:XMLWriter writer=new XMLWriter(new FileOutputStream(xml_file),format);//format参数可选,可以传一个format对象指定输出格式

2)设置输出到文档时是否转义:writer.setEscapeText(false);//true转义

3)通过writer把dom对象写到xml文档中:wtiter.write(dom);

Java生成XML文件与XML文件的写入相关推荐

  1. java生成二维码到文件,java生成二维码转成BASE64

    java生成二维码到文件,java生成二维码转成BASE64 如题,利用java和第三方库,把指定的字符串生成二维码,并且把二维码保存成图片,转换成BASE64格式. 需要的jar文件: packag ...

  2. Java生成真正格式的Excel文件

    一般情况下如果想完全通过自己手工组装的方式去生成一个Excel文件,可以先在pom.xml文件中引入下述依赖: <dependency><groupId>com.github. ...

  3. java生成读取csv,从csv文件中获取Gatling

    加特林与馈线有很好的联系 . 当您提供错误的文件名或馈送文件的路径时,您将收到以下错误(java.lang.IllegalArgumentException:找不到馈送器文件) . 请注意,测试不会运 ...

  4. Java生成xlsx格式的excel文件

    xlsx格式的写入的数据量据说有百万级,结合实际需要该格式. public static void main(String[] args) throws Exception {OutputStream ...

  5. 通过Java生成.pfx(.p12)证书文件

    private void createPfxCert() throws InvalidAlgorithmParameterException, NoSuchAlgorithmException, No ...

  6. java生成MD5校验码(文件/字符串)

    转自:http://blog.csdn.net/achang21/article/details/33741477 需要commons-codec包 文件 DigestUtils.md5Hex(new ...

  7. java 生成txt文档 指定编码格式

    java生成txt文档,指定编码格式 /*** 写入txt文件** @param result* @param fileName* @return*/public static boolean wri ...

  8. java解析xml生成表格_JAVA读取XML文件并解析 以及 JAVA生成文本文件输出

    废话不多说,直接上代码及说明吧! package Dao; import java.io.File; import java.util.ArrayList; import java.util.List ...

  9. java生成XML格式文件,导入MS Project生成甘特图

    公司需求需要生成如如下图所示的project甘特图,开发语言是java,网上找了很久也没有找到可以利用java生成这种甘特图的方案.退而求其次,改变需求生成可以导入project的xml文件. 首先用 ...

  10. java生成xml_在JAVA生成XML文件

    使用的所有工具和软件:IntelliJ IDEA,dom4j-1.6.1.jar; 一.导入dom4j-1.6.1.jar 二.创建Test测试类 三.导入各种需要使用的包 import org.do ...

最新文章

  1. 基于FPGA的图像处理(一)--System Generator介绍
  2. 虚拟机CentOS7开机报错:you might must to save “/run/initramfs/rdsosreport.txt“ to a USB stick or /boot
  3. extundelete 简单使用
  4. 下载所有需要的rpm文件路径
  5. 电气计算机基础知识,电气基础知识
  6. 在eclipse中创建web项目
  7. java计算机毕业设计小型企业财务报销管理源码+lw文档+系统+数据库
  8. 信息学奥赛一本通(1129:统计数字字符个数)
  9. Liskov Substitution Principle
  10. UFS Hibernate介绍--代码部分
  11. 互联网思维到底是什么?
  12. 如何生成随机数(模拟掷骰子的过程)-C语言
  13. robocup初学(第一篇)
  14. 整理下使用yum localinstall做离线安装的点
  15. CountDownLatch闭锁,join和yield的区别
  16. 双指数边缘平滑滤波器用于磨皮算法的尝试。
  17. MT2601平台L1.MP9版本DWS配置方法
  18. A direct formulation for sparse PCA using semidefinite programming
  19. mt4怎么修改服务器代码,如何修改指标参数?
  20. 吴恩达机器学习课程全(python实现)

热门文章

  1. 新的机器学习特性包含Python
  2. 深度学习-我们为什么需要BN(Batch Normalization)?
  3. 迁移学习全面指南:概念、项目实战、优势、挑战
  4. 特斯拉CEO对自动驾驶发表预测,专家:别扰乱公众的认知了
  5. Python五种常见的算法,你都了解么
  6. 提升深度学习模型性能及网络调参
  7. 技术总监和CTO的区别 浅谈CTO的作用----软件公司如何开源节流(一)
  8. 【十大经典数据挖掘算法】k-means
  9. MIT设计深度学习框架登Nature封面,预测非编码区DNA突变
  10. 元宇宙深度报告,共177页!