XML生成
XML也可以通过Java代码生成,一共有三种
1.Java原生态的,2.dom4j(一种导入jar包方式),3.将对象集合直接用c标签展示到xml文件上。
1.java原生态
代码如下:
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代码如下:
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();
}
}
}
第三种单独讲解,有很多需要注意的地方。。。。。