package net.better_best.www.dynamicADPics.utils;

          import java.io.File;
          import java.io.FileWriter;
          import java.io.IOException;
          import java.util.ArrayList;
          import java.util.Iterator;
          import java.util.List;

          import org.dom4j.Attribute;
          import org.dom4j.Document;
          import org.dom4j.DocumentException;
          import org.dom4j.DocumentHelper;
          import org.dom4j.Element;
          import org.dom4j.io.SAXReader;
          import org.dom4j.io.XMLWriter;

          public class DOM4jUtils {
              
          /**
               * 在一個xml文件中,遍歷xml文件,根據Element的elementName,取出所有復合條件的Element元素,把它們轉換為javabean類型,并放入List中返回。
               
          */

              
          public static List parseElementsToObjects(Element root, String elementName) {
                  List
          <Banner> result =  new ArrayList<Banner>();
                    List
          <Element> list = root.elements(elementName);      
                    
          for (Element element : list) {
                       Banner banner 
          = new Banner();
                       
          for(Iterator it=element.attributeIterator();it.hasNext();){
                           Attribute attribute 
          = (Attribute) it.next();
                           
          if(attribute.getName().equals(DOM4jConstant.ELEMENT_ATTRIBUTE_BGURL)){
                               banner.setBnurl(attribute.getValue());
                           }
          else if(attribute.getName().equals(DOM4jConstant.ELEMENT_ATTRIBUTE_IMG)){
                               banner.setImg(attribute.getValue());
                           }
          else if(attribute.getName().equals(DOM4jConstant.ELEMENT_ATTRIBUTE_BNTARGET)){
                               banner.setBntarget(attribute.getValue());
                           }

                       }

                       result.add(banner);            
                  }

                    
          return result ;
              }

              
          /**
               * 根據xml文件的文件名,把xml文件轉換成Document對象并返回。
               
          */

              
          public static Document getDocument(String fileUrl)throws DocumentException {
                  File file 
          = new File(fileUrl);
                  SAXReader reader 
          = new SAXReader();
                  Document document 
          = reader.read(file);
                  
          return document;
              }

              
          /**
               * 根據root 元素的rootName,Element元素的javabean對象以及Element元素的elementName創建Document對象并返回。
               
          */


              
          public static Document createDocument(String rootName,Banner banner,String elementName) {
                  Document doc 
          = DocumentHelper.createDocument();
                  Element root 
          = doc.addElement(rootName);
                  setDocumentHeader(root);
                  addElement(root,banner,elementName);
                  
          return doc;
              }

              
          /**
               * 根據Element元素的javabean對象以及Element元素的elementName在Element root下增加一個Element 。
               
          */

              
          public static void addElement(Element root, Banner banner,String elementName) {
                  Element element 
          = root.addElement(elementName);
                  element.addAttribute(DOM4jConstant.ELEMENT_ATTRIBUTE_IMG, banner.getImg()).addAttribute(DOM4jConstant.ELEMENT_ATTRIBUTE_BGURL, banner.getBnurl()).addAttribute(DOM4jConstant.ELEMENT_ATTRIBUTE_BNTARGET, banner.getBntarget()).addText(
          "");
              }

              
          /**
               * 在Document對象中,以elementName,attributeName,attributeValue為參數刪除對應的Element元素。
               
          */

              
          public static Document removeElementByAttribute(Document document, String elementName,String attributeName,String attributeValue) {
                    List
          <Element> list = document.getRootElement().elements(elementName);        
                  exit:   
          for (Element element : list) {
                       
          for(Iterator it=element.attributeIterator();it.hasNext();){
                           Attribute attribute 
          = (Attribute) it.next();   
                           
          if(attribute.getName().equals(attributeName)&&attribute.getValue().equals(attributeValue)){
                               element.getParent().remove(element);
                               
          break exit;
                           }

                       }
                     
                  }

                    
          return document ;        
              }

              
          /**
               * 把Document對象與filePath對應的物理文件進行同步。
               
          */

              
          public static void writeDocumentToFile(Document document, String filePath)throws IOException {
                  XMLWriter writer 
          = new XMLWriter(new FileWriter(filePath));
                  writer.write(document);
                  writer.flush();
                  writer.close();
              }

              
          /**
               * 設置Document對象的文件頭。
               
          */

              
          public static void setDocumentHeader(Element root) {
                  Element fixedbn 
          = root.addElement("fixedbn");
                  fixedbn.addElement(
          "fixedlink").addAttribute("posx""0")
                                                 .addAttribute(
          "posy""0")
                                                 .addAttribute(
          "scalex""1510")
                                                 .addAttribute(
          "scaley""800")
                                                 .addAttribute(
          "bnurl""http://www.lanrentuku.com/")
                                                 .addAttribute(
          "bntarget""_self")
                                                 .addText(
          "");
                  fixedbn.addElement(
          "fixedlink").addAttribute("posx""0")
                                                 .addAttribute(
          "posy""80")
                                                 .addAttribute(
          "scalex""1510")
                                                 .addAttribute(
          "scaley""1150")
                                                 .addAttribute(
          "bnurl""http://www.lanrentuku.com/")
                                                 .addAttribute(
          "bntarget""_self")
                                                 .addText(
          "");
                  fixedbn.addAttribute(
          "alpha_num""0");
              }


          }




          package net.better_best.www.dynamicADPics.utils;

          public class DOM4jConstant {
              
          public static final String ELEMENT_ATTRIBUTE_IMG  = "img";
              
          public static final String ELEMENT_ATTRIBUTE_BGURL  = "bnurl";
              
          public static final String ELEMENT_ATTRIBUTE_BNTARGET  = "bntarget";
              
              
          public static final String FILE_PATH_NAME  = "/WEB-INF/xml.xml";

          }







          package net.better_best.www.dynamicADPics.utils;

          public class Banner {
              
          private String img;
              
          private String bnurl;
              
          private String bntarget;
              
              
          public String getImg() {
                  
          return img;
              }

              
          public void setImg(String img) {
                  
          this.img = img;
              }

              
          public String getBnurl() {
                  
          return bnurl;
              }

              
          public void setBnurl(String bnurl) {
                  
          this.bnurl = bnurl;
              }

              
          public String getBntarget() {
                  
          return bntarget;
              }

              
          public void setBntarget(String bntarget) {
                  
          this.bntarget = bntarget;
              }

              

          }




          package net.better_best.www.dynamicADPic.action;

          import java.util.List;

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

          import net.better_best.www.dynamicADPic.form.DynamicADPicForm;
          import net.better_best.www.dynamicADPics.utils.Banner;
          import net.better_best.www.dynamicADPics.utils.DOM4jConstant;
          import net.better_best.www.dynamicADPics.utils.DOM4jUtils;

          import org.apache.struts.action.ActionForm;
          import org.apache.struts.action.ActionForward;
          import org.apache.struts.action.ActionMapping;
          import org.apache.struts.actions.DispatchAction;
          import org.dom4j.Document;
          import org.dom4j.DocumentException;

          public class DynamicADPicAction extends DispatchAction {
              @Override
              
          public ActionForward execute(ActionMapping mapping, ActionForm form,
                      HttpServletRequest request, HttpServletResponse response)
                      
          throws Exception {
                  
          return super.execute(mapping, form, request, response);
              }

               
          public  ActionForward add(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) throws Exception {
                   String filePath
          =request.getRealPath("/")+DOM4jConstant.FILE_PATH_NAME;
                    Document document 
          = DOM4jUtils.getDocument(filePath);
                    DynamicADPicForm dynamicADPic 
          = (DynamicADPicForm)form ;
                    String elementName
          ="banner";
                    Banner banner 
          = new Banner();
                      banner.setImg(dynamicADPic.getImg());
                      banner.setBnurl(dynamicADPic.getBnurl());
                      banner.setBntarget(
          "_blank");
                    DOM4jUtils.addElement(document.getRootElement(), banner, elementName);  
                    DOM4jUtils.writeDocumentToFile(document, filePath);
                  
          return  this.list(mapping, form, request, response);
                  }

               
          public  ActionForward list(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) throws Exception {
                                      
                   String elementName 
          = "banner";
                   String filePath
          =request.getRealPath("/")+DOM4jConstant.FILE_PATH_NAME;
                   Document document 
          = null;
                      
          try {
                           document 
          = DOM4jUtils.getDocument(filePath) ;
                      }
           catch (DocumentException e) {
                          init(request);
                           document 
          = DOM4jUtils.getDocument(filePath) ;
                      }

                  
                    List list 
          = DOM4jUtils.parseElementsToObjects(document.getRootElement(), elementName); 
                      request.setAttribute(
          "piclist", list);
                      request.getSession().setAttribute(
          "n", request.getParameter("n"));
                      
          return mapping.findForward("list");
                  }

               
          public  ActionForward delete(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) throws Exception {
                   String filePath
          =request.getRealPath("/")+DOM4jConstant.FILE_PATH_NAME;     
                   Document document 
          = DOM4jUtils.getDocument(filePath);
                   document 
          = DOM4jUtils.removeElementByAttribute(document, "banner""img", request.getParameter("img"));
                   DOM4jUtils.writeDocumentToFile(document, filePath);
                   
          return  this.list(mapping, form, request, response);
                  }

               
          public  void  init(HttpServletRequest request) throws Exception {
                      Banner banner 
          = new Banner();
                      banner.setImg(
          "images/01.jpg");
                      banner.setBnurl(
          "http://www.lanrentuku.com/");
                      banner.setBntarget(
          "_blank");
                      String elementName
          ="banner";
                      String rootName
          ="banner_swf";
                      Document document 
          = DOM4jUtils.createDocument(rootName, banner, elementName);
                      String filePath
          =request.getRealPath("/")+DOM4jConstant.FILE_PATH_NAME;
                      DOM4jUtils.writeDocumentToFile(document, filePath);
                     
                  }

          }



          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 乃东县| 聂拉木县| 曲周县| 安庆市| 枝江市| 曲阳县| 汝城县| 子洲县| 三台县| 色达县| 犍为县| 永福县| 伊春市| 南和县| 耒阳市| 奉新县| 黄骅市| 十堰市| 东乌珠穆沁旗| 肇源县| 久治县| 甘德县| 洪泽县| 奎屯市| 上虞市| 西平县| 罗城| 新巴尔虎左旗| 吉首市| 潼南县| 保山市| 葵青区| 阿尔山市| 陈巴尔虎旗| 黑河市| 宕昌县| 连州市| 漯河市| 磴口县| 中西区| 永安市|