`
Tank03
  • 浏览: 80656 次
  • 性别: 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
分享到:
评论

相关推荐

    dom4j简单例子

    在这个“dom4j简单例子”中,我们将深入理解DOM4J的基本用法和核心概念,以帮助你更好地利用这个库在实际项目中处理XML数据。 1. **DOM4J基本概念** - **Document**: 表示整个XML文档,它是DOM4J树结构的根节点。 ...

    Dom4J完成例子,Dom4J

    Dom4j是一个开源的Java库,用于处理XML文档。它提供了简单且功能强大的API,使得XML的解析、创建、修改和读取变得更加容易。在这个例子中,我们将深入探讨Dom4j的核心功能和使用方法。 **1. XML解析** 解析XML文档...

    Dom4j例子,可以解析大部分的XML

    在TestDom4j项目中,可能包含一个简单的Java程序,演示了如何使用Dom4j解析XML文件、查找特定元素、修改元素内容,并将结果写回XML。这个例子对于初学者来说非常有帮助,因为它展示了Dom4j在实际应用中的基本用法。...

    dom4j 解析xml例子

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活、高性能的API,使得XML的解析、创建、操作变得简单。在这个“dom4j解析xml例子”中,我们将深入探讨DOM4J如何帮助开发者在Java环境中有效地处理XML数据...

    一个简单的Dom4j学习的例子

    **标题解析:** "一个简单的Dom4j学习的例子" 暗示了我们将探讨的是如何使用Dom4j这个Java库来处理XML文档的基础知识。Dom4j是一个灵活且高效的XML处理库,它提供了丰富的API来读取、写入、修改XML文档。 **描述...

    dom4j基本例子

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了简单而灵活的方式来解析、创建、修改和查询XML文档。这个基本例子展示了DOM4J的核心功能,包括XML的读取、元素的操作以及XML结构的修改。 首先,让我们深入...

    用dom4j操作xml的例子

    以下是一个简单的例子: ```java SAXReader reader = new SAXReader(); Document document = reader.read("example.xml"); ``` 2. **增加元素** 添加元素通常涉及到在现有文档中创建新的Element对象,并将其...

    DOM4j教程 例子

    DOM4j是一种用于处理XML的Java API,其设计目的是提供一个高效、功能丰富且易于使用的API。DOM4j是一个开源项目,可以在SourceForge等开源平台上获取到。DOM4j不仅在性能上表现出色,在功能性和易用性方面也得到了...

    dom4j例子与简介

    DOM4j是一个开源的Java库,用于处理XML文档。它提供了一套简洁且强大的API,使得开发者能够轻松地读取、创建和修改XML数据。DOM4j的设计哲学是尽可能接近XML本身,从而让开发者能够更自然地与XML交互。 #### 主要...

    dom4j配置文件例子

    下面是一个简单的DOM4J解析XML配置文件的示例代码: ```java import org.dom4j.Document; import org.dom4j.DocumentFactory; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class Dom4...

    dom4j 例子,演示了3个功能

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了简单而直观的API,使得开发者可以方便地创建、解析、修改以及操作XML文档。在这个压缩包文件中,包含的示例应该详细展示了DOM4J在XML处理中的三个主要功能:...

    dom4j操作XMl例子

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的读取、创建、修改和解析变得简单易行。在本示例中,"dom4jExample.java"是一个Java程序,它展示了如何利用DOM4J库来操作XML文件...

    DOM4j和log4j例子详解

    DOM4j是一个开源的Java XML API,它提供了非常丰富的功能,包括XML解析、文档构建、XPath处理以及XML Schema支持。DOM4j以其高效性能和易于使用的特性,被广泛应用于Java开发中,特别是在处理大型XML文档时,它的...

    dom4j关于xml读写的例子里面还有dom4j的jar包

    在这个压缩包中,你将找到一个DOM4J用于XML操作的例子,这对于初学者来说是一个很好的学习资源。DOM4J相比Java内置的DOM API更加轻量级,性能更优,而且它的API设计得更加友好,易于理解和使用。 XML(eXtensible ...

    dom4j 包含例子 各种增删改查

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的解析、创建、修改和查询变得简单。这个压缩包包含了DOM4J的1.6.1版本,以及相关的示例代码,展示了如何进行XML的各种操作,如增...

    dom4j的源文件(dom4j-1.6.1)含例子和jar包

    DOM4J 是一个非常强大的 Java XML API,它提供了丰富的功能,使得处理 XML 文件变得简单而高效。这个压缩包包含 DOM4J 的源代码、示例以及 jar 包,这对于我们理解其内部工作原理和进行二次开发极其有益。 1. **DOM...

    我写的几个dom4j的入门例子.rar

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了简单易用的API,使得XML的解析、创建、修改和查询变得轻而易举。在这个"我写的几个DOM4J的入门例子"中,我们可以看到一系列的示例,涵盖了XML文件的读取和...

    dom4j的例子,xpp3

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的读取、创建、修改和分析变得简单。XPP3则是一个轻量级的XML解析器,它作为DOM4J的一个可选后端,能够快速高效地解析XML流。在...

    DOM4j属性的详细介绍及相关的例子

    DOM4j 是一个灵活且功能强大的Java库,用于处理XML文档。它提供了一套全面的API来操作XML,包括读取、创建、修改和解析XML文档。以下是DOM4j中一些主要接口及其功能的详细解释: 1. **Attribute接口**:该接口代表...

    dom4j解析xml例子

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活、高性能的方式来解析、创建、修改和操作XML数据。这个“dom4j解析xml例子”压缩包应该包含了一些示例代码、帮助文档和使用说明,旨在帮助初学者快速...

Global site tag (gtag.js) - Google Analytics