夢幻之旅

          DEBUG - 天道酬勤

             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks
          1.導入dom4j-1.6.1.jar
          2.導入jaxen-1.1.1.jar
          package com.hwp.test;

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

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

          /**
           * 
          @author 惠萬鵬
           * 
           
          */

          public class XmlTest
          {
              
          /**
               * <p>
               * 寫XML文件
               * </p>
               * 
               * 
          @param fileName
               *            文件名
               * 
          @param document
               *            文檔
               * 
          @return isWritedSuccessful 寫XML是否成功
               
          */

              
          public static boolean writeXML(String fileName, Document document)
              
          {
                  
          boolean isWritedSuccessful = false;
                  XMLWriter writer 
          = null;
                  
          try
                  
          {
                      OutputFormat format 
          = OutputFormat.createPrettyPrint();
                      format.setEncoding(
          "UTF-8");
                      writer 
          = new XMLWriter(new FileOutputStream(fileName), format);
                      writer.write(document);
                      isWritedSuccessful 
          = true;
                  }

                  
          catch (Exception e)
                  
          {
                      e.printStackTrace();
                  }

                  
          finally
                  
          {
                      
          if (writer != null)
                      
          {
                          
          try
                          
          {
                              writer.close();
                          }

                          
          catch (Exception e)
                          
          {
                              e.printStackTrace();
                          }

                      }

                  }

                  
          return isWritedSuccessful;
              }

              
              
          /**
               * <p>
               * 根據文件名創建XML
               * </p>
               * 
               * 
          @param fileName
               *            文件名
               * 
          @return 是否創建成功
               
          */

              
          public static boolean createStudentXML(String fileName)
              
          {
                  Document document 
          = DocumentHelper.createDocument();
                  document.addComment(
          "99級1班學生信息");
                  document.addElement(
          "students");
                  
          return XmlTest.writeXML(fileName, document);
              }

              
              
          /**
               * <p>
               * 根據文件名得到Document
               * </p>
               * 
               * 
          @param fileName
               *            文件名
               * 
          @return document
               
          */

              
          public static Document getStudentXMLDocument(String fileName)
              
          {
                  SAXReader saxReader 
          = new SAXReader();
                  
          try
                  
          {
                      
          return saxReader.read(new File(fileName));
                  }

                  
          catch (Exception e)
                  
          {
                      e.printStackTrace();
                  }

                  
          return null;
              }

              
              
          /**
               * <p>
               * 向XML里插入一條信息
               * </p>
               * 
               * 
          @param fileName
               * 
          @param id
               * 
          @param name
               * 
          @return
               
          */

              
          public static boolean addStudentInfo(String fileName, String id, String name)
              
          {
                  Document document 
          = XmlTest.getStudentXMLDocument(fileName);
                  
          if (document == null)
                  
          {
                      
          return false;
                  }

                  
                  Element eStudents 
          = document.getRootElement();
                  Element eStudent 
          = eStudents.addElement("student");
                  eStudent.addAttribute(
          "id", id);
                  Element eName 
          = eStudent.addElement("name");
                  eName.setText(name);
                  
          return XmlTest.writeXML(fileName, document);
              }

              
              
          /**
               * <p>
               * 根據id刪除相應的student信息
               * </p>
               * 
               * 
          @param fileName
               *            文件名
               * 
          @param id
               *            studentId
               * 
          @return
               
          */

              
          public static boolean deleteStudentInfo(String fileName, String id)
              
          {
                  
          boolean isDeleteSuccessful = false;
                  Document document 
          = XmlTest.getStudentXMLDocument(fileName);
                  
          if (document == null)
                  
          {
                      
          return false;
                  }

                  List list 
          = document.selectNodes("/students/student[@id='" + id + "']");
                  System.out.println(list);
                  
          if (list != null)
                  
          {
                      Iterator it 
          = list.iterator();
                      
          while (it.hasNext())
                      
          {
                          Element eStudent 
          = (Element) it.next();
                          
          if (eStudent != null)
                          
          {
                              eStudent.getParent().remove(eStudent);
                          }

                          isDeleteSuccessful 
          = document.remove(eStudent);
                      }

                  }

                  
          if (isDeleteSuccessful)
                  
          {
                      
          return XmlTest.writeXML(fileName, document);
                  }

                  
          return isDeleteSuccessful;
              }

              
              
          /**
               * <p>
               * 解析xml
               * </p>
               * 
               * 
          @param fileName
               *            文件名
               * 
          @return
               
          */

              
          public static List<ArrayList<String>> getStudentInfo(String fileName)
              
          {
                  List
          <ArrayList<String>> students = null;
                  students 
          = new ArrayList<ArrayList<String>>();
                  
                  Document document 
          = XmlTest.getStudentXMLDocument(fileName);
                  List eStudentList 
          = document.selectNodes("/students/*");
                  
          if (eStudentList != null)
                  
          {
                      Iterator itEStudentList 
          = eStudentList.iterator();
                      ArrayList
          <String> student = null;
                      
          while (itEStudentList.hasNext())
                      
          {
                          student 
          = new ArrayList<String>();
                          Element eStudent 
          = (Element) itEStudentList.next();
                          student.add(eStudent.attributeValue(
          "id"));
                          student.add(eStudent.element(
          "name").getTextTrim());
                          students.add(student);
                      }

                  }

                  System.out.println(students);
                  
          return students;
              }

              
              
          public static void main(String args[])
              
          {
                  String fileName 
          = "c:/stu.xml";
                  XmlTest.createStudentXML(fileName);
                   
          for(int i=0;i<10;i++)
                       XmlTest.addStudentInfo(fileName,String.valueOf(i),
          "惠萬鵬" + i);
                   
          //XmlTest.deleteStudentInfo(fileName,"4");
                  XmlTest.getStudentInfo(fileName);
              }

          }

          posted on 2008-06-16 21:18 HUIKK 閱讀(510) 評論(0)  編輯  收藏 所屬分類: XML

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


          網站導航:
           
          主站蜘蛛池模板: 合作市| 永仁县| 临湘市| 怀宁县| 金山区| 勐海县| 阿拉尔市| 屏山县| 秀山| 北宁市| 浦江县| 永泰县| 偏关县| 新干县| 和林格尔县| 南乐县| 湖口县| 常德市| 土默特右旗| 读书| 万宁市| 汝城县| 宜兰市| 顺义区| 达日县| 苗栗市| 望江县| 黔西县| 滦南县| 兰考县| 东宁县| 封开县| 富蕴县| 营口市| 临邑县| 盐津县| 仁怀市| 安多县| 永昌县| 酉阳| 彝良县|