生成XML

来源:互联网 发布:置信度传播算法 编辑:程序博客网 时间:2024/05/29 10:48

总共有三种方法生成xml

1.    第一种

//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("保存成功");


2.第二种

/**
 * 使用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");


3.第三种(利用页面生成)

(1)(首先写一个实体类)eg:dog

(2)写servlet

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

(3)

在写一个页面,不过要改为xml模式

<?xml version="1.0" encoding="UTF-8"?><%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/xml; charset=UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<dogs>
    <c:forEach items="${dogs}" var="dog">
        <dog did="${dog.did}">
            <dname>${dog.dname}</dname>
            <dage>${dog.dage}</dage>
        </dog>
    </c:forEach>
</dogs>  



原创粉丝点击