动态生成XML
来源:互联网 发布:崂山道士 知乎 编辑:程序博客网 时间:2024/05/03 00:27
天给大家讲一下如何动态生成XML文件:
一般来说动态生成XML文件有三种方式:
1.使用Document动态生成XML
2.dom4j
3.直接将对象集合,使用C标签展示到XML文件中
接下来我先将三种方式的大纲以及需要的使用的类和方法列出来:
1.使用Document动态生成XML
<1>.创建Document
①实例化Document工厂:DocumentBuilderFactory
②实例化Document构造器:DocumentBuilder
③实例化Document:Document
④创建标签:document.createElement();
⑤创建属性:document.createAttribute();
⑥建立关系:appendChild();
<2>.将Document保存到本地XML中
①实例化转化工厂:TransFormerFactory
②实例化转换器:TransFormer
③设置来源:Source:DOMSource
④设置目的地:Result:StreamResult
⑤转换:transfrom();
代码如下:
package com.zking.test;
import Java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
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.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
/**
* 创建XML 使用Document
* @author Administrator
*
*/
public class TestCreateXMlByDocument {
public static void main(String[] args) {
try {
//1.实例化DocumentBuilderFactory
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
//2.通过dbf获取DocumentBuilder
DocumentBuilder db=dbf.newDocumentBuilder();
//3.创建Document
Document document=db.newDocument();
//4.创建标签<persons>
Element elementPersons=document.createElement("persons");
//创建<person>
Element elementPerson=document.createElement("person");
//创建<page>
Element elementPage=document.createElement("page");
//给标签设值
elementPage.setTextContent("22");
//创建<psex>
Element elementPsex=document.createElement("psex");
elementPsex.setTextContent("男");
//5.创建属性
Attr attrPid=document.createAttribute("pid");
//给属性设值
attrPid.setValue("1");
Attr attrPname=document.createAttribute("pname");
attrPname.setValue("hug");
//6.建立关系
document.appendChild(elementPersons);
elementPersons.appendChild(elementPerson);
elementPerson.appendChild(elementPage);
elementPerson.appendChild(elementPsex);
elementPerson.setAttributeNode(attrPid);
elementPerson.setAttributeNode(attrPname);
System.out.println("创建OK");
//将生成的Document保存到XML文件中
//1.实例化转换器工厂
TransformerFactory tff=TransformerFactory.newInstance();
//2.通过tff获取转换器
Transformer transformer=tff.newTransformer();
//来源
DOMSource source=new DOMSource(document);
//结果
StreamResult streamResult=new StreamResult(new File("my.xml"));
//3.开始转换
transformer.transform(source, streamResult);
System.out.println("保存成功");
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
}
}
2.dom4j
使用dom4j时需要先下载jar包,下载地址 http://www.dom4j.org/dom4j-1.6.1/
<1>.创建Document
①使用DocumentHelper创建Document
②添加标签:addElement("标签名")
③添加属性:addAttribute("属性名","属性值")
<2>.将Document保存到本地XML中
①实例化输出格式:OutputFormat.createPrettyprint()
②指定输出文件路径:XMLWriter
代码如下:
package com.zking.test;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
/**
* 使用DOM4J创建XML
* @author Administrator
*
*/
public class TestCreateXMLByDom4j {
public static void main(String[] args) {
try {
//1.创建Document
Document document=DocumentHelper.createDocument();
//2.创建标签<students>
Element elementStudents=document.addElement("students");
//创建标签<student>
Element elementStudent=elementStudents.addElement("student");
//设值属性
elementStudent.addAttribute("sid", "1");
elementStudent.addAttribute("sname", "hug");
//创建标签<sage><ssex>
Element elementSage=elementStudent.addElement("sage");
//设值
elementSage.setText("140");
Element elementSsex=elementStudent.addElement("ssex");
elementSsex.setText("男");
//生成到XML中
FileOutputStream fos=new FileOutputStream("students.xml");
XMLWriter xmlWriter=new XMLWriter(fos,OutputFormat.createPrettyPrint());
xmlWriter.write(document);
xmlWriter.close();
System.out.println("OK");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
3.直接将对象集合,使用C标签展示到XML文件中
①将对象集合保存到请求域中
②在jsp页面,使用C标签编译对象集合
- PHP动态生成xml
- XML动态的生成
- 动态生成xml
- 动态生成xml
- asp动态生成xml
- C#动态生成XML
- 动态生成XML
- 动态生成XML
- 动态生成XML文件
- 动态生成XML
- C#动态生成XML
- jsp动态生成xml文件
- c#动态生成xml文件
- Java动态生成XML文件
- xml动态文件如何生成
- Unity 动态生成 xml文档
- Unity 动态生成 xml文档
- js动态生成xml数据格式
- Web Analytics 杂谈(上)
- Android全局对象Application的使用,以及如何在任何地方得到Application全局对象
- Python学习总结(3)
- 使用webpack打包第三方非模块插件
- Java中可变长参数的使用方法
- 动态生成XML
- Minor GC和FUllGC的区别
- javassist ,java反射-跳过学习,以后研究
- caffe学习系列———激活层及参数
- kafka单机搭建测试联通样例
- TCP/IP体系架构之运输层
- 关于JDK7的IllegalArgumentException:Comparison method violates its general contract
- 会话
- Java静态绑定与动态绑定