亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Java對XML文件增刪改查操作示例

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

本文實例講述了Java對XML文件增刪改查操作。分享給大家供大家參考,具體如下:

xml文件:

<?xml version="1.0" encoding="UTF-8"?><books>  <book>    <name>哈里波特</name>    <price>10</price>    <memo>這是一本很好看的書。</memo>  </book>  <book id="B02">    <name>三國演義</name>    <price>10</price>    <memo>四大名著之一。</memo>  </book>  <book id="B03">    <name>水滸</name>    <price>6</price>    <memo>四大名著之一。</memo>  </book>  <book id="B04">    <name>紅樓</name>    <price>5</price>    <memo>四大名著之一。</memo>  </book></books>

增刪改查 Test.java

import java.io.File;import java.io.FileOutputStream;import org.w3c.dom.*;import javax.xml.parsers.*;import javax.xml.transform.*;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.*;import javax.xml.xpath.*;public class Test {  public static void main(String[] args) {    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();    Element theBook = null, theElem = null, root = null;    try {      factory.setIgnoringElementContentWhitespace(true);      DocumentBuilder db = factory.newDocumentBuilder();      Document xmldoc = (Document) db.parse(new File("Test.xml"));      root = xmldoc.getDocumentElement();      // --- 新建一本書開始 ----      theBook = xmldoc.createElement("book");      theElem = xmldoc.createElement("name");      theElem.setTextContent("新書");      theBook.appendChild(theElem);      theElem = xmldoc.createElement("price");      theElem.setTextContent("20");      theBook.appendChild(theElem);      theElem = xmldoc.createElement("memo");      theElem.setTextContent("新書的更好看。");      theBook.appendChild(theElem);      root.appendChild(theBook);      System.out.println("--- 新建一本書開始 ----");      output(xmldoc);      // --- 新建一本書完成 ----      // --- 下面對《哈里波特》做一些修改。 ----      // --- 查詢找《哈里波特》----      theBook = (Element) selectSingleNode("/books/book[name='哈里波特']",          root);      System.out.println("--- 查詢找《哈里波特》 ----");      output(theBook);      // --- 此時修改這本書的價格 -----      theBook.getElementsByTagName("price").item(0).setTextContent("15");// getElementsByTagName返回的是NodeList,所以要跟上item(0)。另外,getElementsByTagName("price")相當于xpath的".//price"。      System.out.println("--- 此時修改這本書的價格 ----");      output(theBook);      // --- 另外還想加一個屬性id,值為B01 ----      theBook.setAttribute("id", "B01");      System.out.println("--- 另外還想加一個屬性id,值為B01 ----");      output(theBook);      // --- 對《哈里波特》修改完成。 ----      // --- 要用id屬性刪除《三國演義》這本書 ----      theBook = (Element) selectSingleNode("/books/book[@id='B02']", root);      System.out.println("--- 要用id屬性刪除《三國演義》這本書 ----");      output(theBook);      theBook.getParentNode().removeChild(theBook);      System.out.println("--- 刪除后的XML ----");      output(xmldoc);      // --- 再將所有價格低于10的書刪除 ----      NodeList someBooks = selectNodes("/books/book[price<10]", root);      System.out.println("--- 再將所有價格低于10的書刪除 ---");      System.out.println("--- 符合條件的書有 " + someBooks.getLength()          + "本。 ---");      for (int i = 0; i < someBooks.getLength(); i++) {        someBooks.item(i).getParentNode().removeChild(someBooks.item(i));      }      output(xmldoc);      saveXml("Test1_Edited.xml", xmldoc);    } catch (Exception e) {      e.printStackTrace();    }  }  /**   * 將node的XML字符串輸出到控制臺   *   * @param node   */  public static void output(Node node) {    TransformerFactory transFactory = TransformerFactory.newInstance();    try {      Transformer transformer = transFactory.newTransformer();      transformer.setOutputProperty("encoding", "gb2312");      transformer.setOutputProperty("indent", "yes");      DOMSource source = new DOMSource();      source.setNode(node);      StreamResult result = new StreamResult();      result.setOutputStream(System.out);      transformer.transform(source, result);    } catch (Exception e) {      e.printStackTrace();    }  }  /**   * 查找節點,并返回第一個符合條件節點   *   * @param express   * @param source   * @return   */  public static Node selectSingleNode(String express, Object source) {    Node result = null;    XPathFactory xpathFactory = XPathFactory.newInstance();    XPath xpath = xpathFactory.newXPath();    try {      result = (Node) xpath.evaluate(express, source, XPathConstants.NODE);    } catch (XPathExpressionException e) {      e.printStackTrace();    }    return result;  }  /**   * 查找節點,返回符合條件的節點集。   * @param express   * @param source   * @return   */  public static NodeList selectNodes(String express, Object source) {    NodeList result = null;    XPathFactory xpathFactory = XPathFactory.newInstance();    XPath xpath = xpathFactory.newXPath();    try {      result = (NodeList) xpath.evaluate(express, source,          XPathConstants.NODESET);    } catch (XPathExpressionException e) {      e.printStackTrace();    }    return result;  }  /**   * 將Document輸出到文件   * @param fileName   * @param doc   */  public static void saveXml(String fileName, Document doc) {    TransformerFactory transFactory = TransformerFactory.newInstance();    try {      Transformer transformer = transFactory.newTransformer();      transformer.setOutputProperty("indent", "yes");      DOMSource source = new DOMSource();      source.setNode(doc);      StreamResult result = new StreamResult();      result.setOutputStream(new FileOutputStream(fileName));      transformer.transform(source, result);    } catch (Exception e) {      e.printStackTrace();    }  }}

 

希望本文所述對大家java程序設計有所幫助。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久成人在线视频| 8x拔播拔播x8国产精品| 91在线观看免费观看| 国产精品福利片| 欧美日韩成人在线视频| 国产偷亚洲偷欧美偷精品| 国模精品系列视频| 欧美性视频精品| 精品国产欧美一区二区五十路| 国产69精品久久久久9| 亚洲激情小视频| 欧美日韩中文字幕在线| 国产精品av网站| 日韩福利视频在线观看| 最近2019好看的中文字幕免费| 欧美高清视频免费观看| 欧美人与物videos| 91精品国产综合久久香蕉的用户体验| 亚洲理论片在线观看| 97成人在线视频| 中文字幕欧美视频在线| 久久精品国产免费观看| 亚洲影影院av| 亚洲91精品在线| 欧美亚洲免费电影| 91国偷自产一区二区三区的观看方式| 欧美视频在线观看 亚洲欧| 国产精品福利观看| 国产98色在线| 国产91免费观看| 欧美另类69精品久久久久9999| 日韩美女视频在线观看| 国产精品观看在线亚洲人成网| 欧美在线观看视频| 91在线高清免费观看| 国产午夜一区二区| 美女久久久久久久久久久| 国内精品美女av在线播放| 精品亚洲精品福利线在观看| 一区二区三区无码高清视频| 国产在线观看91精品一区| 51视频国产精品一区二区| 91亚洲va在线va天堂va国| 97免费中文视频在线观看| 欧美精品久久久久久久久| 狠狠躁天天躁日日躁欧美| 国产精品揄拍500视频| 欧美成人免费网| 国产精品精品一区二区三区午夜版| 国产精品r级在线| 亚洲在线免费观看| 性欧美xxxx交| 亚洲天堂网在线观看| 热久久这里只有| 日韩精品在线视频| 国产精品久久综合av爱欲tv| 国产视频在线一区二区| 97激碰免费视频| 国产精品一香蕉国产线看观看| 中文在线不卡视频| 久久久久久久久久久国产| 日韩在线视频播放| 久久国产精品免费视频| 久久大大胆人体| 欧美国产激情18| 欧美色图在线视频| 欧日韩不卡在线视频| 91久久精品视频| 国产精品久久久精品| 国产综合在线观看视频| 成人国产精品色哟哟| 亚洲激情视频网| 精品中文字幕在线2019| 98精品国产高清在线xxxx天堂| 97热在线精品视频在线观看| 97精品国产97久久久久久免费| 久久精品电影网站| 国产亚洲福利一区| 国产xxx69麻豆国语对白| 欧美大片第1页| 自拍偷拍免费精品| 欧美综合在线观看| 岛国av一区二区在线在线观看| 狠狠躁夜夜躁人人爽超碰91| 亚洲色图国产精品| 亚洲国产精品va在线观看黑人| 久久这里有精品视频| 国产欧美日韩最新| 亚洲欧洲中文天堂| 成人网在线免费看| 欧美亚洲视频在线看网址| 欧美国产第一页| 精品一区二区三区电影| 国产精品∨欧美精品v日韩精品| 亚洲第一综合天堂另类专| 久久色在线播放| 日韩一级裸体免费视频| 欧美视频在线观看免费网址| 国产69精品久久久久99| 欧美久久久精品| 青草青草久热精品视频在线观看| 久久久精品999| 96精品久久久久中文字幕| 欧美日韩在线观看视频| 成人午夜两性视频| 26uuu久久噜噜噜噜| 欧美在线视频在线播放完整版免费观看| 亚洲女人天堂成人av在线| 综合国产在线观看| 国产精品十八以下禁看| 欧美激情视频给我| 97精品久久久中文字幕免费| 国产亚洲精品久久久久久| 成人高清视频观看www| 亚洲综合第一页| 精品色蜜蜜精品视频在线观看| 欧美制服第一页| 久久久精品中文字幕| 亚洲一区二区精品| 成人免费观看a| 日韩在线资源网| 亚洲人高潮女人毛茸茸| 久久亚洲综合国产精品99麻豆精品福利| 国产999精品视频| 日韩美女av在线免费观看| 亚洲欧美日韩中文在线| 亚洲高清福利视频| 亚洲国产私拍精品国模在线观看| 国产午夜精品免费一区二区三区| 久久国产精品久久久久久久久久| 日韩黄色在线免费观看| 日韩女优人人人人射在线视频| 精品久久久久久中文字幕一区奶水| 欧美精品videosex性欧美| 欧美福利小视频| 国产成人一区二区| 亚洲精品视频播放| 欧美性xxxx在线播放| 亚洲精品一区二区三区婷婷月| 亚洲人成电影网站色| 欧美日韩免费看| 色妞在线综合亚洲欧美| 日韩免费在线免费观看| 亚洲黄色av女优在线观看| 精品无人区乱码1区2区3区在线| 国产v综合v亚洲欧美久久| 日韩成人在线网站| 日韩电影在线观看中文字幕| 中文字幕日韩欧美在线| 亚洲精品在线观看www| 国产91露脸中文字幕在线| 国产日韩欧美夫妻视频在线观看| 国产精品久久久精品| 成人免费直播live| 日本精品一区二区三区在线| 色婷婷成人综合| 久久免费视频在线观看| 欧美日韩在线观看视频| 欧美日韩国产一区中文午夜| 亚洲欧美另类自拍| 亚洲老头同性xxxxx| 精品亚洲精品福利线在观看| 亚洲美女av在线| 午夜精品久久久久久99热|