`
Tank03
  • 浏览: 78734 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

一个简单的DOM4J的例子

阅读更多

这是我写的一个DOM4J的小例子,基本实现了增加,删除,修改等功能.希望能帮助初学者.里面的代码基本每一句都有解释.如果不清楚,G一下应该也知道,如果不清楚.可以留言给我.

 

ps:希望牛人不要丢瓶.

我是用STRUTS 1 做的,本来想用javabean,但是太麻烦了.里面可能有些错别字,呵呵。。希望读者理解.废话不多说.下面是代码.

分三个部分.

我的XML文件是放在根目录下的/xml下面的:

 

----这是我的wep.XML:

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>3</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>3</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

 这是我的struts配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
  <form-beans>
     <form-bean name="Plecar" type="com.Domj4.Plecar"></form-bean>
  </form-beans>
  <action-mappings>
      <action path="/PlecarToXml"
      		  type="com.Domj4.PlecarToXml"
      		  scope="request"
      		  name="Plecar"
      >
      <forward name="write" path="/PlecarQueryXml.do"></forward>
      </action>
      <action path="/PlecarQueryXml"
      		  type="com.Domj4.PlecarQueryXml"
      		  scope="request"
      		  name="Plecar"
      >
      <forward name="query" path="/ShowThePlecar.jsp"></forward>
  </action>
        <action path="/PlecarModifyQueryXml"
      		  type="com.Domj4.PlecarModifyQueryXml"
      		  scope="request"
      		  name="Plecar"
      >
      <forward name="modify" path="/Modify.jsp"></forward>
  </action>
        <action path="/PlecarModifyXml"
      		  type="com.Domj4.PlecarModifyXml"
      		  scope="request"
      		  name="Plecar"
      >
      <forward name="index" path="/PlecarQueryXml.do"></forward>
  </action>
          <action path="/PlecarDeleteXml"
      		  type="com.Domj4.PlecarDeleteXml"
      		  scope="request"
      		  name="Plecar"
      >
      <forward name="delete" path="/PlecarQueryXml.do"></forward>
  </action>
            <action path="/deleteAll"
      		  type="com.Domj4.deleteAll"
      		  scope="request"
      		  name="Plecar"
      >
      <forward name="ShowDeleteAllAfter" path="/PlecarQueryXml.do"></forward>
  </action>
  </action-mappings>
</struts-config>

 

下面是简单的页面:

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'index.jsp' starting page</title>
  </head>
  
  <body>
  <div align="center" style="border: 4px dotted #ddd;">
    <form action="PlecarToXml.do" method="post">
        标题:<input name="title" type="text"><br/>
        内容:<textarea rows="20" cols="20" name="content"></textarea>
        <input type="submit" value="TO XML">
        <input type="reset" value="Reset">
    </form>
  </div>
  </body>
</html>

 Modify.jsp

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
   <center>
   <div style="width: 400px; height: 400px; border: 3px dashed #ddd;">
        <form action="PlecarModifyXml.do" method="post">
            <c:set var="form" value="${plecarContent}"/>
                 标题:<input name="title" type="text" value="${plecarContent.title}"/><br/>
       <input name="id" value="${plecarContent.id }" type="hidden"/><br/>
                 内容:<textarea name="content" cols="58" rows="8">${plecarContent.content }</textarea><br/>
       <input type="submit" value="保存"><input type="reset" value="重置"/>
       <a onclick="history.back(-1)">返回</a>
        </form>
   </div>
   </center>
</body>
</html>

 ShowThePlecar.jsp:

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="html" uri="http://jakarta.apache.org/struts/tags-html" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
<div style="border: 3px dotted #ddd; width: 420px; height: 400px;">
     [${description }]${createDate }
     <c:if test="${rssContent==null}">
           <tr></tr>
               <td height="27" colspan="3" align="center" bgcolor="#fff">暂时没有公告.</td>
           <tr></tr>
     </c:if>
     <br>
          <tr align="center" style="padding: 10px; width:140px" ><th height="27" width="140px">标题</th><th height="27" width="140px">修改</th><th height="27" width="140px">删除</th></tr>
          <br/>
     <c:forEach items="${rssContent}" var="form">

           <tr>
               <td height="27"  width="140" bgcolor="#fff">&nbsp;${form.title }</td>
               <td align="center" bgcolor="#fff" width="140" >
                   <html:link action="PlecarModifyQueryXml.do?id=${form.id}">修改</html:link>
               </td>
               <td height="27" bgcolor="#fff" width="140" ></td>
               <td align="center" bgcolor="#fff" width="140" >
                   <html:link action="PlecarDeleteXml.do?id=${form.id}">删除</html:link>
               </td>
           </tr>
     </c:forEach>
</div>
<div>
     <c:if test="${rssContent!=null}">
           <tr></tr>
               <td height="27" colspan="3" align="center" bgcolor="#fff"><a href="deleteAll.do">删除全部公告</a></td>
           <tr></tr>
     </c:if>
     <c:if test="${deleteAllOk!=null}"><script>alert("${deleteAllOk}");</script></c:if>
     <c:if test="${deleteSuccess!=null}"><script>alert("${deleteSuccess}");</script></c:if>
     <c:if test="${modifySuccess!=null}"><script>alert("${modifySuccess}");</script></c:if>
</div>
</body>
</html>
 

 

 

我先贴上actionForm:

1:这是个实例,因为只有一个,所有就没有单独放在一个包里了.

 

package com.Domj4;

import org.apache.struts.action.ActionForm;

public class Plecar extends ActionForm{
       private int id;
       private String pubDate;
       private String title;
       private String content;
	/**
	 * @return the id
	 */
	public int getId() {
		return id;
	}
	/**
	 * @param id the id to set
	 */
	public void setId(int id) {
		this.id = id;
	}
	/**
	 * @return the pubDate
	 */
	public String getPubDate() {
		return pubDate;
	}
	/**
	 * @param pubDate the pubDate to set
	 */
	public void setPubDate(String pubDate) {
		this.pubDate = pubDate;
	}
	/**
	 * @return the title
	 */
	public String getTitle() {
		return title;
	}
	/**
	 * @param title the title to set
	 */
	public void setTitle(String title) {
		this.title = title;
	}
	/**
	 * @return the content
	 */
	public String getContent() {
		return content;
	}
	/**
	 * @param content the content to set
	 */
	public void setContent(String content) {
		this.content = content;
	}
	
}

 

 2:这是创建和添加信息的action:

 

package com.Domj4;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

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

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

public class PlecarToXml extends Action {

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		request.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=GBK");
		String url = request.getRealPath("/xml/plecar.xml");//拿到文件的相对路径.
		File file = new File(url);
		
		String title = new String(request.getParameter("title").getBytes("iso-8859-1"),"gbk");//拿到公告的标题.
		String content = new String(request.getParameter("content").getBytes("iso-8859-1"),"gbk");//拿到公告的内容.
		System.out.println(content);
		
		Document document = null;
		Element plecar = null;
		DateFormat df = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分");//设置日期的格式.
		  if(!file.exists()) {//判断文件是不是存在.如果不存在就创建一个文件.
			  document = DocumentHelper.createDocument();//创建XML文档对象.
			  plecar = DocumentHelper.createElement("plecar");//创建普通节点.
			  
			  document.setRootElement(plecar);//将plecar设置为根节点.
			  plecar.addAttribute("version","2.0");//为根节点设置属性.
			  Element  description = plecar.addElement("description");//添加description子节点.
			           description.setText("公告栏");
			  Element  createTime = plecar.addElement("createTime");//添加createTime子节点.
			  		   createTime.setText("创建于:"+df.format(new Date()));
			  
		  }
		  else {//如果存在该文件.
			  SAXReader reader = new SAXReader();//实例化读取对象.
			  try {
				    document = reader.read(new File(url));//获取xml文件对应的xml文档对象.
				    plecar = document.getRootElement();//获取根节点.
			  }catch (DocumentException e) {
				System.out.println("xml文件读取失败!");
			}
			  
		  }
		/***********************添加公告信息*****************************/
		String id =String.valueOf(plecar.elements("info").size()+1); //获取当前公告的ID号.
		
		Element info = plecar.addElement("info");//添加info节点.
		        info.addAttribute("id", id);//为info添加属性.
		Element title_info = info.addElement("title");//添加tilte节点.
		        title_info.addText(title);//添加title内容.
		Element into_content = info.addElement("content");//添加into_content子节点.
				into_content.addCDATA(content);//添加内容.
	    Element pubDate = info.addElement("pubDate");//添加pubDate子节点.
	    		df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期的格式.
	    		pubDate.setText(df.format(new Date()));
	    		
	   /***********************保存文件*****************************/
	    //创建outputformat对象.
	    		OutputFormat format = OutputFormat.createPrettyPrint();//设置文件存入的格式.
	    		             format.setEncoding("GBK");//设置写入数据的格式编码.
	    		try {
	    			XMLWriter writer = new XMLWriter(new FileWriter(url),format);//拿到想要输入的文件,按照一定的格式写入.
	    			          writer.write(document);//向流写入数据.
	    			          writer.close();//关闭流.
	    		}catch (IOException e) {
					System.out.println("将数据写入文件出现错误.");
				}
	    return mapping.findForward("write");
	}

}









 

 

3:这是查询显示到页面的action:

 

 

package com.Domj4;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

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

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class PlecarQueryXml extends Action {

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		request.setCharacterEncoding("GBK");
		response.setContentType("text/html");
		String fileUrl = request.getRealPath("/xml/plecar.xml");//拿到文件的相对路径.
		File file = new File(fileUrl);
		
		Document document = null;//声明Document对象.
		Element plecar = null;//声明根节点对象.
		List list = null;//声明List对象.
		
		String description = "";//定义保存描述信息的变量.
		String createDate = "";//定义保存创建日期的变量.
    	
    	//Plecar plecar2 = null;//实例化对象,储存数据.
    	
		if(file.exists()) {//如果文件不存在.如果不存在就创建这个文件.
			SAXReader reader = new SAXReader();//拿到SAXReader对象.
			    try {
			    	document  = reader.read(new File(fileUrl));//拿到文件的XML文件.
			    	plecar = document.getRootElement();//拿到根节点.
			    	
			    	List lists = plecar.elements("info");//循环info公告里面的东西.
			    	
			    	description = plecar.element("description").getText();//拿到描述的信息.
			    	createDate = plecar.element("createTime").getText();//拿到创建日期.
			    	int id = 0;
			    	String title = "";//设置标题.
			    	String content = "";//设置内容.
			    	String pubDate = "";//设置发布日期.
			    	
			    	if(lists.size()>0) {
			    		list = new ArrayList();
			    	}
			    	for(int i=lists.size();i>0;i--) {
			    		
			    		Plecar plecar2 = new Plecar();//实例化对象.
			    		
			    		Element item = (Element)lists.get(i-1);//拿到内容info对象.
			    		
			    		id = Integer.parseInt(item.attribute("id").getValue());//拿到id的属性.
			    		
			    		if(item.element("title").getText()!=null) {//拿到info的标题.
			    			title = item.element("title").getText();
			    		}else {
			    			title = "暂时没有标题";
			    		}
			    		
			    		if(item.element("content").getText()!=null) {
			    			content = item.element("content").getText();//拿到info的内容.
			    		}else {
			    			content = "暂时没有内容";
			    		}
			    		if(item.element("pubDate").getText()!=null) {
			    			pubDate = item.element("pubDate").getText();//拿到发布日期.
			    		}
			    		
			    		plecar2.setId(id);
			    		plecar2.setTitle(title);
			    		plecar2.setContent(content);
			    		list.add(plecar2);
			    	}
			    }catch (Exception e) {
					  System.out.println("读取文件失败!1111");
					  e.printStackTrace();
				}
		}
		request.setAttribute("description", description);
		request.setAttribute("createDate", createDate);
		request.setAttribute("rssContent", list);
		
		return mapping.findForward("query");
	}

}













 

 

4:这个是修改时候所要查询出来显示的action:

 

 

package com.Domj4;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

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

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class PlecarModifyQueryXml extends Action{
	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		
		    request.setCharacterEncoding("GBK");
		    response.setCharacterEncoding("text/html;charset=GBK");//设置响应的编码.
		    
		    String fileUrl = request.getRealPath("/xml/plecar.xml");//拿到要访问的XML文件路径.
		    File file = new File(fileUrl);
		    
		    Document document = null;//声明文本Document对象.
		    Element plecar = null;//声明表示根节点的Element对象.
		    
		    int id = Integer.parseInt(request.getParameter("id"));//拿到要修改的公告的ID.
		    Plecar plecar2 = new Plecar();//为每一个信息创建一个广告对象储存.

		    if(file.exists()) {//判断文件是不是存在.
		    	  SAXReader reader = new SAXReader();
		    	      try {
		    	    	  document = reader.read(new File(fileUrl));//获得要访问的XML文档的Document对象.
		    	    	  plecar = document.getRootElement();//拿到这个文档的根节点.
		    	    	  
		    	    	  Element item = (Element) plecar.selectSingleNode("/plecar/info[@id='"+id+"']");
		    	    	  if(item!=null) {
		    	    	  
		    	    	  String title = "";//标题.
		    	    	  String content = "";//内容.
		    	    	  String pubDate = "";//发布日期.
		    	    	  
		    	    	  id = Integer.parseInt(item.attributeValue("id"));//拿到信息对象的ID.
		    	    	  
		    	    		  if(item.element("title").getText()!=null) {
		    	    			  title = item.element("title").getText();//获取标题.
		    	    		  }else {
		    	    			  title = "Sorry 暂时没有相关的公告";
		    	    		  }
		    	    		  if(item.element("content").getText()!=null) {
		    	    			  content = item.element("content").getText();//拿到公告的内容.
		    	    		  }
		    	    		  else {
		    	    			  content = "没有相关的内容";
		    	    		  }
		    	    		  if(item.element("pubDate").getText()!=null) {
		    	    			  pubDate = item.element("pubDate").getText();//获得发布日期.
		    	    		  }
		    	    		  plecar2.setTitle(title);
		    	    		  plecar2.setContent(content);
		    	    		  plecar2.setId(id);
		    	    		  plecar2.setPubDate(pubDate);
		    	    		  
		    	    	  }
		    	      }catch (Exception e) {
						System.out.println("文件修改的途中出现错误.");
					}finally {
						      document.clearContent();//释放资源.
					}
					}
		    request.setAttribute("plecarContent", plecar2);
		    return mapping.findForward("modify");
	}
		
}





 

 

5:这个是修改action:

 

 

package com.Domj4;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

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

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

public class PlecarModifyXml extends Action {
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		    request.setCharacterEncoding("GBK");
		    response.setCharacterEncoding("text/html;charset=GBK");
		    
		    int id = Integer.parseInt(request.getParameter("id"));//拿到要修改信息的ID.
		    
		    String title = request.getParameter("title");//拿到修改信息的标题.
		    String content = request.getParameter("content");//拿到要修改信息的.
		    
		    DateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分");//格式化发布日期.
		    String pubDate = dateFormat.format(new Date());//创建发布日期.
		    
		    String fileUrl = request.getRealPath("/xml/plecar.xml");////拿到要修改后要保存的文件.
		    File file = new File(fileUrl);
		    
		    Document document = null;//初始化文档对象.
		    Element plecar = null;//初始化根节点对象.
		      if(file.exists()) {
		    	  SAXReader reader = new SAXReader();
		    	     try {
		    	    	 document = reader.read(new File(fileUrl));//获取要修改文件的Document对象.
		    	    	 plecar = document.getRootElement();//获得根节点.
		    	    	 
		    	    	 Element item = (Element)plecar.selectSingleNode("/plecar/info[@id='"+id+"']");
		    	    	 
		    	    	 if(item!=null) {
		    	    		 item.element("title").setText(title);//修改标题.
		    	    		 item.element("content").setText(content);//设置内容.
		    	    		 item.element("pubDate").setText(pubDate);//设置发布日期.
		    	    	 }
		    	     }catch (Exception e) {
						System.out.println("文件修改的时候出现错误!");
					}
		      }
		      
		      OutputFormat format = OutputFormat.createPrettyPrint();//设置信息存入的格式,也就是缩进方式.
		      format.setEncoding("GBK");//设置写入文件的编码格式.
		            try {
		            	XMLWriter writer = new XMLWriter(new FileWriter(fileUrl),format);
		            	          writer.write(document);//写入文本.
		            	          writer.close();//关闭写入流.
		            	          document.clearContent();//释放资源.
		            }catch (IOException e) {
						System.out.println("数据写入文本的时候出现问题!");
					}
		     request.setAttribute("modifySuccess", "修改数据成功!");
		     return mapping.findForward("index");
	}
	
}




 

 

6:这个是删除信息的action:

 

 

package com.Domj4;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

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

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

public class PlecarDeleteXml extends Action {

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		int id = Integer.parseInt(request.getParameter("id"));
		
		String fileUrl = request.getRealPath("/xml/plecar.xml");//拿到文件的绝对位置.
		File file = new File(fileUrl);
		
		Document document = null;//初始化文档Document对象.
		Element plecar = null;//初始化根节点对象.
		    if(file.exists()) {
		    	SAXReader reader = new SAXReader();//拿到读取器.
		           try {
		    	          document = reader.read(new File(fileUrl));//读取文件.
		    	          plecar =  document.getRootElement();//拿到根节点.
		    	          
		    	          Element item =  (Element)plecar.selectSingleNode("/plecar/info[@id='"+id+"']");//拿到对应的节点.
		    	          if(item!=null) {//判断节点是不是存在.
		    	        	  plecar.remove(item);//删除相对应的节点.
		    	          }
		               }catch (DocumentException e) {
						   System.out.println("数据删除出现问题.");
					   }
		           }
		    //创建OutputFormat对象.
		    OutputFormat format = OutputFormat.createPrettyPrint();//格式化为缩进方式.
		    format.setEncoding("GBK");//设置编码.
		    
		    try {
		    	XMLWriter writer = new XMLWriter(new FileWriter(fileUrl),format);
		    	          writer.write(document);//把数据重新写到文件中.
		    	          writer.close();//关闭写入流.
		    }catch (IOException e) {
				System.out.println("在数据被删除的时候,写入数据出现问题");
			}finally {
				document.clearContent();//释放资源.
			}
		request.setAttribute("deleteSuccess", "删除数据成功");
		return mapping.findForward("delete");
	}

}




 

 

 7:这个是删除所有文件信息的action:

 

 

package com.Domj4;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

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

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

public class deleteAll extends Action {
	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		String fileUrl =request.getRealPath("/xml/plecar.xml");//拿到要删除文件的绝对位置.
		File file = new File(fileUrl);
		
		Document document = null;//获取文件的Document对象.
		Element plecar = null;//拿到文件的根节点.
		if(file.exists()) {
			SAXReader reader = new SAXReader();
			    try {
			    	document = reader.read(new File(fileUrl));//读取文件.
			    	plecar = document.getRootElement();//拿到根节点.
			    	plecar.elements("info").clear();//删除所有的info节点.
			    }catch (DocumentException e) {
					System.out.println("删除文件的INFO所有节点出现错误.");//
				}
		}
		//创建格式化对象.
		OutputFormat format = OutputFormat.createPrettyPrint();//格式化对象的创建.
		format.setEncoding("GBK");//设置文件希写入的编码格式.
		    try {
		    	XMLWriter writer = new XMLWriter(new FileWriter(fileUrl),format);
		    			  writer.write(document);//想流写入数据.
		    			  writer.close();//关闭数据流.
		    }catch (IOException e) {
				System.out.println("数据库写入文件的时候出现错误.");
			}finally {
				document.clearContent();//释放资源.
			}
	    request.setAttribute("deleteAllOk", "已经成功删除所有的公告");
		return mapping.findForward("ShowDeleteAllAfter");
	}

}







 

 

 

 

1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics