您好,登錄后才能下訂單哦!
這篇文章主要介紹了xml中有哪些解析方式,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
在XML的解析方式有很多,但有四種解析方式是最常用的,分別為DOM方法、SAX方法、JDOM方法、DOM4J 方法。
XML簡介
XML即可擴展的標記語言,可以定義語義標記(標簽),是元標記語言。XML不像超文本標記語言HTML,HTML只能使用規(guī)定的標記,對于XML,用戶可以定義自己需要的標記。樹狀模型。
XML文檔以層級標簽的形式來組織數據,多用于配置文件、存儲靜態(tài)數據、交換數據。
XML語法
1、每個XML文檔都由XML序言開始,在前面的代碼中的第一行便是XML序言,<?xml version="1.0"?>
2、任何的起始標簽都必須有一個結束標簽。
3、標簽必須按合適的順序進行嵌套,所以結束標簽必須按鏡像順序匹配起始標簽。
4、標簽如果有屬性,屬性值必須加雙引號。
XML文件解析的四種方式
1、DOM解析方法
DOM,文檔對象模型(Document Object Model),是官方推薦的標準。DOM是html和xml文檔的編程接口規(guī)范,和平臺、語言是無關的。利用DOM規(guī)范,能夠實現DOM 文檔和xml之間的相互轉換,遍歷、操作相應DOM文檔的內容。DOM規(guī)范的核心就是樹模型,全部讀取之后再解析。
原理是:首先在內存中創(chuàng)建一個Document對象,然后把XML文檔讀取進來賦值給這個dom對象。由于dom對象是基于樹結構的,所以對dom對象進行遍歷即可。對內存中的dom對象可以進行查詢、修改、刪除操作,還可以寫回原XML文檔保存修改。
優(yōu)點:由于整棵樹在內存中,因此可以對xml文檔隨機訪問;可以對xml文檔進行修改操作
缺點:整個文檔必須一次性解析完;由于整個文檔都需要載入內存,對于大文檔成本高
2、SAX解析方法
SAX,簡單應用程序接口(Simple Api For Xml)。非W3C官方所提供的標準,是一個程序員社區(qū)研究出來。SAX在概念上與DOM完全不同。非文檔驅動,是事件驅動的。事件驅動:一種基于回調機制的程序運行方法。由外至內一層一層解析。
優(yōu)點:解析速度快,占用內存少,它需要哪些數據再加載和解析哪些內容。
缺點:它不會記錄標簽的關系,而是需要應用程序自己處理,這樣就會增加程序的負擔。
3、JDOM解析方法
JDOM是Java和DOM的結合體。JDOM 致力于建立一個完整的基于 Java 平臺的、通過 Java 代碼來訪問、操作并輸出 XML 數據。JDOM是用Java語言讀、寫、操作XML的新API函數。簡單、高效、優(yōu)化。
優(yōu)點:查找方便,可以修改
缺點:裝載整個文檔,對內存容量要求高
4、DOM4J解析方法。
dom4j是一個Java的XML API,類似于jdom,用來讀寫XML文件的。性能優(yōu)異功能強大簡單易用開放源代碼。它是目前最流行、最好用的XML解析工具,解析XML的速度最快。
操作步驟:
1:創(chuàng)建SAXReader:SAXReader reader = new SAXReader();
2:創(chuàng)建文件輸入流打開xml文件:InputStream in = new FileInputStream("XXX.xml");
3:通過reader和輸入流讀取xml文件到內存創(chuàng)建Document對象:Document dom = reader.read(in);
4:獲取根節(jié)點:Element root=dom.getRootElement();
5:獲取子節(jié)點列表:List<Element> childNodes = root.elements();
6:遍歷子節(jié)點:Element node = childNodes.get(i);
7:讀取結點信息:
1)、結點屬性值:node.attributeValue("屬性名");
2)、結點名:node.getName();
3)、結點值:node.getValue();
4)、子結點文本值:node.elementText("子結點名")
感謝你能夠認真閱讀完這篇文章,希望小編分享xml中有哪些解析方式內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業(yè)資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。