日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

dom解析和生成XML文件

發布時間:2025/5/22 asp.net 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dom解析和生成XML文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用這種方式解析時,需要使用node.getNodeType() == Node.ELEMENT_NODE判斷結點是否為元素結點,否則會輸出很多#text(結點前有空格存在的原因)。

完成的XML解析和生成代碼如下:

package test;import java.io.*; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.Source; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; import org.w3c.dom.Node;class XMLHelper {/*** 解析XML* @param filename 要解析的XML的文件名*/public static void resolveXML(String filename) {File f = new File(filename);DocumentBuilderFactory factory = null;DocumentBuilder db = null;Element element = null;try {//獲得DOM解析器工廠factory = DocumentBuilderFactory.newInstance();//獲取具體的DOM解析器db = factory.newDocumentBuilder();//解析一個xml文檔,獲得Document對象(根節點)Document document = db.parse(f);element = document.getDocumentElement();System.out.println("Root: " + element.getNodeName());NodeList childNodes = element.getChildNodes();for (int i = 0; i < childNodes.getLength(); i++) {Node node = childNodes.item(i);if (node.getNodeType() == Node.ELEMENT_NODE) {System.out.println(node.getNodeName());NodeList nodes = node.getChildNodes();for (int j = 0; j < nodes.getLength(); j++) {Node temp = nodes.item(j);if (temp.getNodeType() == Node.ELEMENT_NODE) {System.out.println(" " + temp.getNodeName() + ": " + temp.getTextContent());}}}}} catch (Exception ex) {ex.printStackTrace();}}/*** 生成XML文件* @param filename 將生成的XML輸出到該文件*/public static void CreateXML(String filename) {try {DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();DocumentBuilder db = factory.newDocumentBuilder();Document document = db.newDocument();Element root = document.createElement("bookstore");//add bookElement book = document.createElement("book");book.setAttribute("category", "COOKING");//book.titleElement title = document.createElement("title");title.setAttribute("lang", "en");title.setTextContent("Everyday Italian");book.appendChild(title);//book.authorElement author = document.createElement("author");author.setTextContent("Giada De Laurentiis");book.appendChild(author);//book.yearElement year = document.createElement("year");year.setTextContent("2005");book.appendChild(year);//book.priceElement price = document.createElement("price");price.setTextContent("30.00");book.appendChild(price);root.appendChild(book);//add bookbook = document.createElement("book");book.setAttribute("category", "CHILDREN");//book.titletitle = document.createElement("title");title.setAttribute("lang", "en");title.setTextContent("Harry Potter");book.appendChild(title);//book.authorauthor = document.createElement("author");author.setTextContent("J K. Rowling");book.appendChild(author);//book.yearyear = document.createElement("year");year.setTextContent("2005");book.appendChild(year);//book.priceprice = document.createElement("price");price.setTextContent("39.99");book.appendChild(price);root.appendChild(book);//add bookbook = document.createElement("book");book.setAttribute("category", "WEB");//book.titletitle = document.createElement("title");title.setAttribute("lang", "en");title.setTextContent("Learning XML");book.appendChild(title);//book.authorauthor = document.createElement("author");author.setTextContent("Erik T. Ray");book.appendChild(author);//book.yearyear = document.createElement("year");year.setTextContent("2003");book.appendChild(year);//book.priceprice = document.createElement("price");price.setTextContent("39.95");book.appendChild(price);root.appendChild(book);document.appendChild(root);TransformerFactory transformerFactory = TransformerFactory.newInstance();Transformer transformer = transformerFactory.newTransformer();Source xmlSource = new DOMSource(document);StreamResult outputTarget = new StreamResult(new File(filename));transformer.transform(xmlSource, outputTarget);} catch (Exception ex) {ex.printStackTrace();}} }public class Main {public static void main(String[] args) throws Exception{String filename = "E:\\Eclipse Project\\WebTest\\WebContent\\myxml1.xml";XMLHelper.resolveXML(filename);filename = "E:\\Eclipse Project\\WebTest\\WebContent\\myxml2.xml";XMLHelper.CreateXML(filename);} }

輸入的XML文件內容如下:

<?xml version="1.0" encoding="UTF-8"?> <bookstore> <book category="COOKING"><title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="CHILDREN"><title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="WEB"><title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore>

解析函數的輸出如下:

Root: bookstore booktitle: Everyday Italianauthor: Giada De Laurentiisyear: 2005price: 30.00 booktitle: Harry Potterauthor: J K. Rowlingyear: 2005price: 39.99 booktitle: Learning XMLauthor: Erik T. Rayyear: 2003price: 39.95


轉載:http://blog.csdn.net/foreverling/article/details/50150111

總結

以上是生活随笔為你收集整理的dom解析和生成XML文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。