Xml生成

来源:互联网 发布:风险矩阵图等级划分 编辑:程序博客网 时间:2024/06/08 16:34

生成如下:my.xml:

<?xml version="1.0" encoding="UTF-8" standalone="no"?><persons><person pid="1" pname="hug"><page>22</page><psex>男</psex></person></persons>

生成如下:students.xml:

<?xml version="1.0" encoding="UTF-8"?>

<students>
  <student sid="1" sname="hug">
    <sage>140</sage>
    <ssex>男</ssex>
  </student>
</students>
entity文件:

package com.zking.entity;

public class Dog {
    private int did;
    private String dname;
    private int dage;
    public Dog() {
        super();
        // TODO Auto-generated constructor stub
    }
    public Dog(int did, String dname, int dage) {
        super();
        this.did = did;
        this.dname = dname;
        this.dage = dage;
    }
    public int getDid() {
        return did;
    }
    public void setDid(int did) {
        this.did = did;
    }
    public String getDname() {
        return dname;
    }
    public void setDname(String dname) {
        this.dname = dname;
    }
    public int getDage() {
        return dage;
    }
    public void setDage(int dage) {
        this.dage = dage;
    }
}
Servlet文件:

import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.zking.entity.Dog;

public class GetXMlServlet extends HttpServlet{
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        
        List<Dog> dogs=new ArrayList<Dog>();
        for (int i = 1; i <=3; i++) {
            dogs.add(new Dog(i, "旺旺"+i, 1));
        }
        req.setAttribute("dogs", dogs);
        req.getRequestDispatcher("success.jsp").forward(req, resp);
        
    }
}

Test中TestCreateXMlByDocument文件:

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

TestCreateXMLByDom4j文件:

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