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

歡迎訪問 生活随笔!

生活随笔

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

asp.net

第二章XML

發布時間:2024/4/15 asp.net 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第二章XML 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

XMl

  • XML簡介
    • XML的文檔結構
    • XMl的應用
  • XML解析
    • 1.DOM
      • 使用DOM 讀取XML數據
      • 使用DOM維護XML數據
    • 2.SAX
    • 3.JDOM
    • 4.DOM4J
      • 使用DOM4j解析XML
  • XML總結

XML簡介

XML的文檔結構


1.XML聲明

2.XML標簽

3.元素
元素由開始標簽,結束標簽和元素內容組成。元素內容指開始標簽和結束標簽之間的內容,可以包含子元素,字符數據等。
元素的命名規則如下

  • 名稱中可以包含字母數字,或者其他符號。
  • 名稱不能一數字或標點符號開始是。
  • 名稱不能以字符“”XML“(或者XML,XmL)開始。
  • 名稱不能包含空格

4.根元素
根元素的特點

  • 根元素是一個完全包括文檔中其他所有元素的元素。
  • 根元素的起始標簽要放在所有其他元素的起始標簽之前。
  • 根元素的結束標簽要放在所有其他元素的結束標簽之后。

5.屬性
6.xml中的特殊字符的處理

7.文檔要求

XMl的應用

xml的應用場景主要體現在以下幾點
1.數據存儲
2.數據交換
3.數據配置

XML解析

目前常用的解析技術有四種

1.DOM

DOM把XML文件映射成一顆倒掛的數,已根元素為根節點,每一個節點都已對象形式存在,通過存取這些對象就能存取XML文檔的內容

使用DOM 讀取XML數據

/*解析XML文件*///創建解析器工廠對象DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();//獲得解析對象DocumentBuilder builder=factory.newDocumentBuilder();//加載要解析的XML文件Document doc=builder.parse(new File("手機信息.xml"));//構建DOM樹//操作DOM樹: 讀取,修改,添加,刪除../*getLength():獲得節點個數Item():獲得節點集合中的第N個節點getElementsByTagName(): 根據標簽名獲得指定的標簽[子標簽,父標簽]getAttribute((): 獲得當前標簽的指定屬性的值getTextContent(): 獲得當前標簽的文本內容/*NodeList brands=doc.getElementsByTagName("Brand");//根據標簽名獲得標簽節點for (int i = 0; i < brands.getLength(); i++) {//節點: 標簽,屬性節點,文本節點Element brand=(Element) brands.item(i);//Brand屬于標簽節點String name=brand.getAttribute("name");//el.getChildNodes();NodeList types=brand.getElementsByTagName("Type");for(int j = 0; j < types.getLength(); j++) {Element type=(Element) types.item(j);//Node向下轉型為ElementString typeName=type.getAttribute("name");//獲得type標簽的name屬性值String price=type.getTextContent();//獲得當前標簽的文本內容System.out.println("手機名:"+name+" 型號:"+typeName+" 價格:"+price);}}





使用DOM維護XML數據

//創建解析器工廠對象DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();//獲得解析對象DocumentBuilder builder=factory.newDocumentBuilder();//加載要解析的XML文件Document doc=builder.parse(new File("手機信息.xml"));//構建DOM樹//新增節點: 標簽節點,屬性節點,文本節點Element newBrand=doc.createElement("Brand");//<Brand></Brand>newBrand.setAttribute("name", "小米");//<Brand name="小米"></Brand>Element newType=doc.createElement("Type");//<Type></Type>newType.setAttribute("name", "Mi10");//<Type name="Mi10"></Type>newType.setTextContent("2999元");//<Type name="Mi10">2999元</Type>//將子標簽添加到父標簽中newBrand.appendChild(newType);//<Brand name="小米"><Type name="Mi10">2999元</Type></Brand>//修改節點: 屬性,文本newType.setAttribute("name","mi11");newType.setTextContent("1999元");//刪除節點: 標簽節點,屬性節點,文本節點newType.removeAttribute("name");newType.setTextContent("");//文本默認為""//newType.getParentNode().removeChild(newType);//刪除當前節點Node parentNode=newType.getParentNode();parentNode.removeChild(newType);//添加節點到DOM樹doc.getElementsByTagName("PhoneInfo").item(0).appendChild(newBrand);//存儲XML信息DOMSource domSource=new DOMSource(doc);//設置DOM信息Result rs=new StreamResult(new FileOutputStream(new File("新的手機信息.xml")));//信息存儲位置//格式轉換對象//創建格式轉換工廠對象TransformerFactory ttf=TransformerFactory.newInstance();//獲得格式轉換對象Transformer transformer=ttf.newTransformer();//設置轉換格式transformer.setOutputProperty(OutputKeys.VERSION, "1.0");transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");//轉換: 將DOM信息,轉到磁盤文件中transformer.transform(domSource, rs);

2.SAX

SAX是基于時間的解析,他是解決DOM解析的資源消耗而出現的,它不像DOM那樣需要建立一顆完整的文檔樹,而是通過時間處理器完成對文檔的解析, 以為SAX解析不用事先調入整個文檔,所以他的優勢就是占用資源少,消耗內存小,一般在解析數據量大的XML文檔是會采用。

3.JDOM

4.DOM4J


使用DOM4j解析XML


//創建解析器SAXReader saxReader=new SAXReader();//加載指定XML文件Document doc=saxReader.read("手機信息.xml");//獲得根標簽Element root=doc.getRootElement();//解析XML信息System.out.println(doc.asXML());/*List<Element> brands=root.elements("Brand"); for (Element element : brands) {//element.attribute("name").getValue();String name=element.attributeValue("name");List<Element> types=element.elements("Type");for (Element type : types) {String typeName=type.attributeValue("name");String price=type.getTextTrim();System.out.println("品牌:"+name+" 類型:"+typeName+" 價格:"+price);}}*///添加節點:Element newBrand=root.addElement("Brand");//<Brand></Brand>newBrand.setAttributeValue("name", "小米");//<Brand name="小米"></Brand>Element newType=newBrand.addElement("Type");//<Brand name="小米"><Type></Type></Brand>newType.setAttributeValue("name", "mi10");//<Brand name="小米"><Type name="mi10"></Type></Brand>newType.setText("1999元");//<Brand name="小米"><Type name="mi10">1999元</Type></Brand>//修改節點:newType.setAttributeValue("name", "mi11");newType.setText("3999元");//newBrand.remove(newType);newType.getParent().remove(newType);//刪除節點:newType.remove(newType.attribute("name"));newType.setText("");//remove(Text對象);OutputFormat format=OutputFormat.createPrettyPrint();format.setEncoding("UTF-8");XMLWriter xmlWriter=new XMLWriter(new FileOutputStream("新手機信息.xml"), format);xmlWriter.write(doc);xmlWriter.close();




XML總結

總結

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

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