国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

java使用DOM4J對XML文件進行增刪改查操作

2024-07-14 08:43:17
字體:
來源:轉載
供稿:網友

本文實例為大家分享了java使用DOM4J對XML文件進行增刪改查操作的具體代碼,供大家參考,具體內容如下

源代碼: 

DOM4j.java

 

package com.zc.homeWork19;import java.io.FileWriter;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;import com.zc.homeWork19.Book;public class DOM4j {  public static void main(String args[]) throws Exception {    /**     * 第一步,得到document對象。     */    Document document = getDocument();    /**     * 第二步,修改得到的document對象     */    /**     * 首先,讀取功能     */    List<Book> books = readAllElementsFromXMLDocument(document);    traverseBooks(books);    /**     * 其次,修改功能 修改內容:將id為b002的元素的title改為Java Core,Price改為100.01     */    ModifyInformationOfXMLDocument(document);     /**     * 再者:實現刪除功能 刪除內容:刪除掉id為book1的元素內容。     */     deleteInformationOfXMLDocument(document);     /**     * 最后:實現添加i新元素功能 添加內容:id為book3,title內容為:鳳姐玉照,price內容為10000.00     */     addNewBookToXMLDocument(document);     /**     * 第三步:將得到的document對象持久化保存到硬盤(XML)     */     writeToNewXMLDocument(document);  }  /**   * 實現了添加新節點:book的功能   *    * @param document   */  private static void addNewBookToXMLDocument(Document document) {    Element root = document.getRootElement();    Element newBook = root.addElement("book");    newBook.addAttribute("id", "book3");    Element    title.setText("鳳姐玉照");    Element price = newBook.addElement("price");    price.setText("10000.01");  }  /**   * 該方法實現了使用dom4j的刪除元素的功能   *    * @param document   */  private static void deleteInformationOfXMLDocument(Document document) {    Element root = document.getRootElement();    for (Iterator it = root.elementIterator(); it.hasNext();) {      Element book = (Element) it.next();      String id = book.attributeValue("id");      if ("book1".equals(id)) {        Element parent = book.getParent();        parent.remove(book);      }    }  }  /**   * 該方法的作用是修改document中的內容 將id為b002的元素的title改為Java Core,Price改為100.01   *    * @param document   */  private static void ModifyInformationOfXMLDocument(Document document) {    Element root = document.getRootElement();    List books = root.elements();    for (int i = 0; i < books.size(); i++) {      Element book = (Element) books.get(i);      if ("book2".equals(book.attributeValue("id"))) {        for (Iterator it = book.elementIterator(); it.hasNext();) {          Element node = (Element) it.next();          String type = node.getName();          if ("title".equals(type)) {            node.setText("JAVA Core");          }          if ("price".equals(type)) {            node.setText("100.01");          }        }      }    }    try {      writeToNewXMLDocument(document);    } catch (Exception e) {      // TODO Auto-generated catch block      e.printStackTrace();    }  }  /**   * 遍歷集合   *    * @param books   */  private static void traverseBooks(List<Book> books) {    for (Iterator<Book> iterator = books.iterator(); iterator.hasNext();) {      Book book = iterator.next();      System.out.println(book);    }  }  /**   * 該方法實現了對xml文檔的讀取功能   *    * @param document   * @return   */  private static List<Book> readAllElementsFromXMLDocument(Document document) {    List<Book> books = new ArrayList<Book>();    Element root = document.getRootElement();    List list = root.elements();    for (int i = 0; i < list.size(); i++) {      Element book = (Element) list.get(i);      Book b = new Book();      String id = book.attributeValue("id");      List ll = book.elements();      b.setId(id);      System.out.println(id);      for (int j = 0; j < ll.size(); j++) {        Element element = (Element) ll.get(j);        if ("title".equals(element.getName())) {          String          b.setTitle(title);          System.out.println(title);        }        if ("price".equals(element.getName())) {          String price = element.getText();          double p = Double.parseDouble(price);          b.setPrice(p);          System.out.println(price);        }      }      books.add(b);    }    return books;  }  /**   * 通過document對象將內存中的dom樹保存到新的xml文檔。   *    * @param document   * @throws Exception   */  private static void writeToNewXMLDocument(Document document)      throws Exception {    XMLWriter writer = new XMLWriter(new FileWriter(        "src/com/zc/homeWork19/newbooks.xml"));    writer.write(document);    writer.close();  }  /**   * 該方法用于得到document對象。   *    * @return   * @throws Exception   */  private static Document getDocument() throws Exception {    SAXReader sr = new SAXReader();    Document document = sr.read("src//books.xml");    return document;  }}

Book.java

package com.zc.homeWork19;public class Book {  public String title;  public double price;  public String id;  public String getTitle() {    return title;  }  public void setTitle(String title) {    this.title = title;  }  public double getPrice() {    return price;  }  public void setPrice(double price) {    this.price = price;  }  public String getId() {    return id;  }  public void setId(String id) {    this.id = id;  }  public String toString() {    return "圖書ISBN為:" + id + "  書名為:" + title + "  價格為:" + price;  }}

book.xml

<?xml version="1.0" encoding="UTF-8"?><books>  <book id="book1">    <title>JAVA編程思想</title>    <price>80.00</price>  </book>  <book id="book2">    <title>JAVA 編程理論</title>    <price>100.00</price>  </book></books>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 英吉沙县| 灵寿县| 上虞市| 正蓝旗| 富顺县| 泰宁县| 郎溪县| 南溪县| 缙云县| 公主岭市| 顺义区| 沾益县| 库伦旗| 南召县| 上饶市| 日土县| 张家口市| 钟祥市| 永川市| 邹城市| 陵川县| 吴江市| 巴马| 永顺县| 武平县| 建湖县| 休宁县| 玉田县| 左贡县| 永丰县| 子洲县| 平潭县| 资源县| 涿鹿县| 沂源县| 突泉县| 淮北市| 堆龙德庆县| 镇平县| 资源县| 酒泉市|