XML生成

来源:互联网 发布:速可贷网络贷款 编辑:程序博客网 时间:2024/06/05 17:43

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();
        }
        
    }
}

第三种单独讲解,有很多需要注意的地方。。。。。


原创粉丝点击