(九)生成XML文档流程

一: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);

原文地址:https://www.cnblogs.com/yuexiaoyun/p/9439440.html

时间: 2024-08-29 10:04:19

(九)生成XML文档流程的相关文章

生成XML文档

JAVA操作XML文档主要有四种方式,分别是DOM.SAX.JDOM和DOM4J,DOM和SAX是官方提供的,而JDOM和DOM4J则是引用第三方库的,其中用的最多的是DOM4J方式.运行效率和内存使用方面最优的是SAX,但是由于SAX是基于事件的方式,所以SAX无法在编写XML的过程中对已编写内容进行修改,但对于不用进行频繁修改的需求,还是应该选择使用SAX. 现在来生成这样的一份XML文档,文档内容如下: <?xml version="1.0" encoding="

dom4j解析和生成XML文档

解析XML的两种方法 package cnslp.dom4j.com; import java.io.File; import java.util.Iterator; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; /**  * Created by cnslp on 2017/5/12 0012.  * 解析XML文档的

ASP.NET 动态查找数据 并且生成xml文档 同时使用xslt转换为xhtml

前言 xsl是一门标签解析语言,很适合做动态网页的前台标签 www.bamn.cn 1 首先是aspx页面 添加一个输入框 按钮 还有一个用来显示解析后的xhtml代码的控件 <form id="form1" runat="server"> <div> <asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine"

通过 JDOM 方式生成 XML 文档

1.引入jdom jar包 2.代码 Element ele = new Element("tree"); ele.setAttribute("id","0"); Document document = new Document(ele); Element e1 = new Element("name"); e1.setText("名称"); ele.addContent(e1); // Format fo

WebService生成XML文档时出错。不应是类型XXXX。使用XmlInclude或SoapInclude属性静态指定非已知的类型。

情况是SingleRoom和DoubleRoom是Room类的子类.在WebService中有一个方法是返回Room类. public Room Get(int roomId) { return Room.Get(roomId); } XmlSerializer在序列化时只能识别父类,而不能识别子类,所以导致序列化的错误.需要将[XmlInclude(typeof(SingleRoom))]和[XmlInclude(typeof(DoubleRoom))]同时加到WebService中. [Xm

使用GDataXML生成、修改XML文档-陈棚

使用GDXML生成XML文档的步骤如下. 1.调用GDataXMLNode的elementWithName:方法创建GDataXMLElement对象,对象作为XML文档的根元素. 2.调用GDataXMLNode的elementWithName:方法不断创建GDataXMLElement对象(XML元素),并利用元素之间的父子关系组织这些XML元素. 3.调用GDataXMLDocument的initWithRootElement:方法根据指定根元素来生成GDataXMLDocument对象-

.net 提取注释生成API文档 帮助文档

提取注释生成API文档 一.前言 在多人协作的项目中,除了良好的代码规范外,完整的API文档也相当重要.通过文档我们快速了解系统各模块的实际接口,及其使用场景.使用示例,一定程度上降低沟通成本,和减少后期维护中知识遗失等风险. 对于.Net,我们可以直接将类.方法等的注释直接转为API文档,极大地减少文档维护的工作量,同时也能反向提高大家的注释质量. 下面我们使用.Net唯一的注释生成API文档工具——Sandcastle和Sandcastle Help File Builder来实现API文档

.Net魔法堂:提取注释生成API文档

一.前言 在多人协作的项目中,除了良好的代码规范外,完整的API文档也相当重要.通过文档我们快速了解系统各模块的实际接口,及其使用场景.使用示例,一定程度上降低沟通成本,和减少后期维护中知识遗失等风险. 对于.Net,我们可以直接将类.方法等的注释直接转为API文档,极大地减少文档维护的工作量,同时也能反向提高大家的注释质量. 下面我们使用.Net唯一的注释生成API文档工具——Sandcastle和Sandcastle Help File Builder来实现API文档自动化吧! 二.工具 S

dom4j 解析 XML文档截录

dom4j 是一种解析 XML 文档的开放源代码 XML 框架.本文介绍如何使用包含在 dom4j 中的解析器创建并修改 XML 文档. dom4j API 包含一个解析 XML 文档的工具.本文中将使用这个解析器创建一个示例 XML 文档.清单 1 显示了这个示例 XML 文档,catalog.xml. 清单 1. 示例 XML 文档(catalog.xml) <?xml version="1.0" encoding="UTF-8"?> <cat