xml02 XML编程(CRUD)增删查改
生活随笔
收集整理的這篇文章主要介紹了
xml02 XML编程(CRUD)增删查改
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
XML解析技術概述 Demo2.java import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; public class Demo2 { public static void main(String args[])throws Exception { //1.創建工程 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); //2.得到dom解析器 DocumentBuilder builder = factory.newDocumentBuilder(); //3.解析xml文檔,得到代表文檔的document Document document = builder.parse("src/book.xml"); } }
xml解析技術概述和使用Jaxp對xml文檔進行dom解析
package cn.lysine; import org.junit.Test; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; //使用dom方式對xml文檔進行 增刪查改 CRUD public class Demo3 { // 讀取xml文檔中;<書名>java就業培訓中心</書名> 節點的值 @Test public void read1() throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse("src/book.xml"); NodeList list = document.getElementsByTagName("書名"); Node node = list.item(1); String content = node.getTextContent(); System.out.println(content); //輸出 java就業培訓中心 } //得到xml中標簽屬性的值 @Test public void read2() throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse("src/book.xml"); // 得到根結點 Node root = document.getElementsByTagName("書架").item(0); list(root); } private void list(Node node) { System.out.println(node.getNodeName()); NodeList list = node.getChildNodes(); for(int i = 0; i <list.getLength(); i++ ){ Node childe = list.item(i); list(childe); } } //得到xml文檔中標簽屬性的值:<書名 name="xxxx">java就業培訓教材</書名> @Test public void read3() throws Exception{ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse("src/book.xml"); Element bookname = (Element)document.getElementsByTagName("書名").item(0); String value = bookname.getAttribute("name"); System.out.println(value); } //輸出 xxxx } import java.io.FileOutputStream; import java.io.IOException; import org.junit.Test; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; //使用dom方式對xml文檔進行 增刪查改 CRUD public class Demo3 { // 讀取xml文檔中;<書名>java就業培訓中心</書名> 節點的值 @Test public void read1() throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse("src/book.xml"); NodeList list = document.getElementsByTagName("書名"); Node node = list.item(0); String content = node.getTextContent(); System.out.println(content); } //得到xml中標簽屬性的值 @Test public void read2() throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse("src/book.xml"); // 得到根結點 Node root = document.getElementsByTagName("書架").item(0); list(root); } private void list(Node node) { System.out.println(node.getNodeName()); NodeList list = node.getChildNodes(); for(int i = 0; i <list.getLength(); i++ ){ Node childe = list.item(i); list(childe); } } //得到xml文檔中標簽屬性的值:<書名 name="xxxx">java就業培訓教材</書名> @Test public void read3() throws Exception{ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse("src/book.xml"); Element bookname = (Element)document.getElementsByTagName("書名").item(0); String value = bookname.getAttribute("name"); System.out.println(value); } //向xml文檔中添加節點:<售價>59.00元</售價> @Test public void add() throws Exception{ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse("src/book.xml"); //創建節點 Element price = document.createElement("售價"); price.setTextContent("59.00元"); //得到參考節點 Element refNode = (Element) document.getElementsByTagName("售價").item(0); //得到要掛崽的節點 把創建的節點掛到第一本書上 Element book = (Element)document.getElementsByTagName("書").item(0); //往book節點的指定位置插崽 book.insertBefore(price,refNode); //把更新后內存寫回到xml文檔 TransformerFactory tffactory = TransformerFactory.newInstance(); Transformer tf = tffactory.newTransformer(); tf.transform(new DOMSource(document), new StreamResult(new FileOutputStream("src/book.xml"))); } //add 向xml文檔中添加節點:<書名>java就業培訓教程</書名> 上添加name=“xxxx”屬性 @Test public void addAttr() throws Exception{ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse("src/book.xml"); Element bookname = (Element) document.getElementsByTagName("書名").item(0); bookname.setAttribute("name", "xxxxx"); //把更新后內存寫回到xml文檔 TransformerFactory tffactory = TransformerFactory.newInstance(); Transformer tf = tffactory.newTransformer(); tf.transform(new DOMSource(document),new StreamResult(new FileOutputStream("src/book.xml"))); } //刪除整個xml @Test public void delete1() throws Exception{ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse("src/book.xml"); //得到要刪除的結點 Element e = (Element) document.getElementsByTagName("售價").item(0); //得到要刪除的結點的爸爸 Element book = (Element) document.getElementsByTagName("書").item(0); //爸爸再刪崽 book.removeChild(e); //把更新后內存寫回到xml文檔 TransformerFactory tffactory = TransformerFactory.newInstance(); Transformer tf = tffactory.newTransformer(); tf.transform(new DOMSource(document),new StreamResult(new FileOutputStream("src/book.xml"))); } public void delete2() throws Exception{ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse("src/book.xml"); //得到要刪除的結點 Element e = (Element) document.getElementsByTagName("售價").item(0); e.getParentNode().getParentNode().getParentNode().removeChild(e.getParentNode().getParentNode()); //把更新后內存寫回到xml文檔 TransformerFactory tffactory = TransformerFactory.newInstance(); Transformer tf = tffactory.newTransformer(); tf.transform(new DOMSource(document),new StreamResult(new FileOutputStream("src/book.xml"))); } //update 更新 public void update()throws ParserConfigurationException, SAXException, IOException,Exception{ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse("src/book.xml"); //得到要更新的結點 Element e = (Element) document.getElementsByTagName("售價").item(0); e.setTextContent("109元"); //把更新后內存寫回到xml文檔 TransformerFactory tffactory = TransformerFactory.newInstance(); Transformer tf = tffactory.newTransformer(); tf.transform(new DOMSource(document),new StreamResult(new FileOutputStream("src/book.xml"))); } }轉載于:https://www.cnblogs.com/firecode/archive/2011/12/24/2460926.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的xml02 XML编程(CRUD)增删查改的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信用卡新规定2018 总结对用户来说的4
- 下一篇: asp.net ajax控件工具集 Au