之前的文章我們講解了《XML系列教程之Schema技術_上海尚學堂java培訓技術干貨》《XML的概念、特點與作用、XML申明_上海Java培訓技術干貨》,大家可以點擊回顧一下之前將的技術,能更好地學習本內容。本文在此基礎上再講述XML的解析技術。(以上文字發表在我的上海尚學堂網站上,大家可以點擊閱讀更多Java、Python和大數據相關文章)
一、四種常見的XML解析技術
dom是解析xml的底層接口之一(另一種是sax) ,而jdom和dom4j則是基於底層api的更高級封裝 ,dom是通用的,而jdom和dom4j則是面向java語言的 。
二、Dom解析Xml(了解)
DOM 是用與平台和語言無關的方式表示 XML 文檔的官方 W3C 標准。DOM 是以層次結構組織的節點或信息片斷的集合。這個層次結構允許開發人員在樹中尋找特定信息。分析該結構通常需要加載整個文檔和構造層次結構,然后才能做任何工作。由於它是基於信息層次的,因而 DOM 被認為是基於樹或基於對象的。
2.1 Dom 解析主要對象
2.2 Dom 解析Xml步驟
l 創建解析器工廠對象
l 由解析器工廠對象創建解析器對象
l 由解析器對象對指定XML文件進行解析,構建相應DOM樹,創建Document對象
l 以Document對象為起點對DOM樹的節點進行增刪改查操作使用
Api 文檔參考地址:
http://www.w3school.com.cn/xmldom/index.asp
Dom解析解析學生成績信息score.xml
"1.0" encoding="utf-8" ?> 張三 2018001 0113 上海外國語 123456 王五 2018002 0114 上海外國語 657432 |
/** * 解析xml文檔 * */ public static void parseXml(){ try{ //得到DOM解析器的工廠實例 DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); //從DOM工廠中獲得DOM解析器 DocumentBuilder dbBuilder = dbFactory.newDocumentBuilder(); //把要解析的xml文檔讀入DOM解析器 Document doc = dbBuilder.parse("C:\\java\\idea_workspace_18\\freemarker01\\src\\main\\resources\\scores.xml"); System.out.println("處理該文檔的DomImplementation對象 = "+ doc.getImplementation()); //得到文檔名稱為Student的元素的節點列表 NodeList nList = doc.getElementsByTagName("Student"); //遍歷該集合,顯示結合中的元素及其子元素的名字 for(int i = 0; i< nList.getLength() ; i ++){ Element node = (Element)nList.item(i); System.out.println("Name: "+ node.getElementsByTagName("Name").item(0).getFirstChild().getNodeValue()); System.out.println("Num: "+ node.getElementsByTagName("Num").item(0).getFirstChild().getNodeValue()); System.out.println("Classes: "+ node.getElementsByTagName("Classes").item(0).getFirstChild().getNodeValue()); System.out.println("Address: "+ node.getElementsByTagName("Address").item(0).getFirstChild().getNodeValue()); System.out.println("Tel: "+ node.getElementsByTagName("Tel").item(0).getFirstChild().getNodeValue()); } }catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } |
結果
三、Dom4J解析Xml(推薦)
DOM4J 是一個非常非常優秀的Java XML API,具有性能優異、功能強大和極端易用使用的特點,同時它也是一個開放源代碼的軟件。如今你可以看到越來越多的 Java 軟件都在使用 DOM4J 來讀寫 XML,特別值得一提的是連 Sun 的 JAXM 也在用 DOM4J。
Api文檔參考地址: https://dom4j.github.io/

3.1 DOM4J解析Xml步驟
3.2 DOM4J 解析學生成績信息 scores.xml
l 獲得document 對象
SAXReader reader=new SAXReader(); Document document=reader.read(new File("input.xml")); |
l 操作xml文檔節點
Element rootElm=document.getRootElement();//獲得根節點 Element memberElm=root.element(“member”); //獲得子節點 String text=memberElm.getText();//獲得節點文本 Element ageElm=newMemberElm.addElement(“age”);//添加子節點 ageElm.setText(“29”);//設置節點文本 parentElm.remove(childElm);//)刪除某節點 |
這就是上海尚學堂Java培訓的XML系列教程課件簡約版,獲取詳細全套Java視頻教程請聯系留下扣扣薇芯等聯系方式,稍后會發相關資料給您。