一文讀懂四種常見的XML解析技術


之前的文章我們講解了《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 D
OM4J解析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視頻教程請聯系留下扣扣薇芯等聯系方式,稍后會發相關資料給您。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM