DOM4J创建XML一个实例

本文介绍了一个Java程序,该程序使用DOM4J库创建并保存XML文档。通过实例展示了如何构建XML结构,包括根元素、子元素及属性设置,并演示了如何将文档输出到磁盘。

//CreateXML.java文件

package com.data;

import org.dom4j.*;

import java.io.File;
import java.io.FileOutputStream;
import java.text.Format;

import javax.lang.model.element.ElementVisitor;

import org.dom4j.io.*;
import org.dom4j.*;

import java.io.*;
import java.util.*;

public class CreateXML {
//无惨构造函数
 public CreateXML(){}
 //产生一个XML文档并从盘
 public Document create(String filename){
  
 Document document=DocumentHelper.createDocument();
  
  Element rootElement=document.addElement("linkmans");
 //为根元素创建第一个子元素
  Element fristElement=rootElement.addElement("linkman");
  Element element1=fristElement.addElement("name");
  element1.setText("张三");
  Element element2=fristElement.addElement("id");
  element2.setText("001");
  Element element3=fristElement.addElement("company");
  element3.setText("A 公司");
  Element element4=fristElement.addElement("email");
  element4.setText("(020)234223");
  //为根元素添加第二个子元素
  Element secondElement=rootElement.addElement("linkman");
  Element elementa=secondElement.addElement("name");
  elementa.setText("李四");
  Element elementb=secondElement.addElement("id");
  elementb.setText("002");
  Element elementc=secondElement.addElement("company");
  elementc.setText("B 公司");
  Element elementd=secondElement.addElement("mail");
  elementd.setText("3253252");
  //将创建的XML文档从盘
  try {
   XMLWriter output=null;
   //创建一个格式化对象
       OutputFormat format=OutputFormat.createPrettyPrint();
        //使用TAB缩进
       format.setIndent("\t");
       //创建一个XMLwrite对象
       output=new XMLWriter(new FileOutputStream(new File(filename)),format);
       //将XML文档输出
       output.write(document);
       output.close();
  } catch (Exception e) {
   // TODO: handle exception
   System.out.println(e.getMessage());
  }
  //返回XML文档对象
  return document;
  
 }
 //将文本转换为XML文档并存盘
 public Document create(String filename,String text)throws Exception {
 
  Document document=DocumentHelper.parseText(text);
  //将创建的XMl文档存盘
  try {
   XMLWriter output=null;
   
   OutputFormat format=OutputFormat.createPrettyPrint();
 
   format.setIndent("\t");

   output=new XMLWriter(new FileOutputStream(new File(filename)), format);
  
   output.write(document);
   output.close();
   
  } catch (Exception e) {
   // TODO: handle exception
   System.out.println(e.getMessage());
  }
 
  return document;
 }
}

//createXML.jsp文件

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ page import="org.dom4j.*"%>
<%@ page import="com.data.CreateXML" %>
<jsp:useBean id="myCreate" class="com.data.CreateXML"></jsp:useBean>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>创建XML文件</title>

 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->

  </head>
 
  <body>
    <h2>创建XMl文件</h2>
    <%
    //定义一个myfirst.xml文件的绝对物理路径
    String fileName1=request.getRealPath("/")+"//myfirst.xml";
    //产生并保存myfirst.xml文件并取得xml文档对象
    Document doc=myCreate.create(fileName1);
    //暂存在XML文档的内容
   
    String reslut=doc.asXML();
    //创建一个符合XML文档语法的文本串
    StringBuffer text=new StringBuffer();
    text.append("<users>");
    text.append("<user>");
    text.append("<loginname>admin</loginname>");
    text.append("<password>123</password>");
    text.append("</user>");
    text.append("</users>");
    //以文本串为内容创建一个XMl文档
    String fileName2=request.getRealPath("/")+"//mysecond.xml";
    myCreate.create(fileName2,text.toString());
     %>
     <textarea rows="10" cols="60"><%=reslut%></textarea>
  </body>
</html>

转载于:https://my.oschina.net/haquanwen/blog/69713

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值