真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java代碼解析xml java代碼解析xml文件

java怎么解析xml文件?

String?xml="xmlToUserName![CDATA[toUser]]/ToUserName"沖舉簡(jiǎn)

10余年專注成都網(wǎng)站制作,企業(yè)網(wǎng)站設(shè)計(jì),個(gè)人網(wǎng)站制作服務(wù),為大家分享網(wǎng)站制作知識(shí)、方案,網(wǎng)站設(shè)計(jì)流程、步驟,成功服務(wù)上千家企業(yè)。為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),專注于企業(yè)網(wǎng)站設(shè)計(jì),高端網(wǎng)頁(yè)制作,對(duì)除甲醛等多個(gè)領(lǐng)域,擁有多年設(shè)計(jì)經(jīng)驗(yàn)。

+"FromUserName![CDATA[fromUser]]答拆/FromUserName"

+"CreateTime12345678/CreateTime"

+"MsgType![CDATA[text]]/MsgType"

+"Content散褲![CDATA[你好]]/Content/xml";

try?{

//加載xml字符串

org.dom4j.Document?document=org.dom4j.DocumentHelper.parseText(xml);

//獲取根節(jié)點(diǎn)

org.dom4j.Element?root=document.getRootElement();

//獲取值??==toUser

String?toUserName=root.elementText("ToUserName");

System.out.println(toUserName);

}?catch?(Exception?e)?{

//?TODO?Auto-generated?catch?block

e.printStackTrace();

}

在java中解析xml有哪幾種方法

(1)DOM解析

DOM是html和xml的應(yīng)用程序接口(API),以層次結(jié)構(gòu)(類似于樹(shù)型)來(lái)組織節(jié)點(diǎn)和信息片段,映射XML文檔的結(jié)構(gòu),允許獲取

和操作文檔的任意部分,是W3C的官方標(biāo)準(zhǔn)

【優(yōu)點(diǎn)】

①允許應(yīng)用程序?qū)?shù)據(jù)和結(jié)構(gòu)做出更改。

②訪問(wèn)是雙向的,可以在任何時(shí)候在樹(shù)中上下導(dǎo)航,獲取和操作任意部分的數(shù)據(jù)。

【缺點(diǎn)】

①通常需要加載整個(gè)XML文檔來(lái)構(gòu)造層次結(jié)構(gòu),消耗資源大。

【解析詳解】

①構(gòu)建Document對(duì)象:

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

DocumentBuilder db = bdf.newDocumentBuilder();

InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(xml文件);

Document doc = bd.parse(is);

②遍歷DOM對(duì)象

Document: XML文檔對(duì)象,由解析器獲取

NodeList: 節(jié)點(diǎn)數(shù)組

Node: 節(jié)點(diǎn)(包括element、#text)

Element: 元素,可用于獲取屬性參數(shù)

(2)SAX(Simple API for XML)解析

流模型中的"推"模型分析方式。通過(guò)事件驅(qū)動(dòng),每發(fā)現(xiàn)一個(gè)節(jié)點(diǎn)就引發(fā)一個(gè)事件,事件推給事件處理器,通過(guò)回調(diào)方法

完成解析工作,解析XML文檔的邏輯需要應(yīng)用程序完成

【優(yōu)勢(shì)】

①不需要等待所有數(shù)據(jù)都被處理,分析就能立即開(kāi)始。

②只在讀取數(shù)據(jù)時(shí)檢查數(shù)據(jù),不需要保存在內(nèi)存中。

③可以在某個(gè)條件得到滿足時(shí)停止解析,不必解析整個(gè)文檔。

④效率和性能較高,能解析大于系統(tǒng)內(nèi)存的文檔。

【缺點(diǎn)】

①需要應(yīng)用程序自己負(fù)責(zé)TAG的處理邏輯(例如維護(hù)父/子關(guān)旁禪橘系等),文檔越復(fù)雜程序就越復(fù)雜。

②單向?qū)Ш剑瑹o(wú)法定位文檔層次,很難同時(shí)訪問(wèn)同一文檔的不同部分?jǐn)?shù)據(jù),不支持XPath。

【原理】

簡(jiǎn)單的說(shuō)就是對(duì)文檔進(jìn)行順序掃描,當(dāng)掃描到文檔(document)開(kāi)始與結(jié)束、元素(element)開(kāi)運(yùn)團(tuán)始與結(jié)束時(shí)通知事件

處理函數(shù)(回調(diào)函數(shù)),進(jìn)行相應(yīng)處理,直到文檔結(jié)束

【事件處理器類型】

①訪問(wèn)XML DTD:DTDHandler

②低級(jí)訪問(wèn)解析襲春錯(cuò)誤:ErrorHandler

③訪問(wèn)文檔內(nèi)容:ContextHandler

【DefaultHandler類】

SAX事件處理程序的默認(rèn)基類,實(shí)現(xiàn)了DTDHandler、ErrorHandler、ContextHandler和EntityResolver接口,通常

做法是,繼承該基類,重寫(xiě)需要的方法,如startDocument()

【創(chuàng)建SAX解析器】

SAXParserFactory saxf = SAXParserFactory.newInstance();

SAXParser sax = saxf.newSAXParser();

注:關(guān)于遍歷

①深度優(yōu)先遍歷(Depthi-First Traserval)

②廣度優(yōu)先遍歷(Width-First Traserval)

(3)JDOM(Java-based Document Object Model)

Java特定的文檔對(duì)象模型。自身不包含解析器,使用SAX

【優(yōu)點(diǎn)】

①使用具體類而不是接口,簡(jiǎn)化了DOM的API。

②大量使用了Java集合類,方便了Java開(kāi)發(fā)人員。

【缺點(diǎn)】

①?zèng)]有較好的靈活性。

②性能較差。

(4)DOM4J(Document Object Model for Java)

簡(jiǎn)單易用,采用Java集合框架,并完全支持DOM、SAX和JAXP

【優(yōu)點(diǎn)】

①大量使用了Java集合類,方便Java開(kāi)發(fā)人員,同時(shí)提供一些提高性能的替代方法。

②支持XPath。

③有很好的性能。

【缺點(diǎn)】

①大量使用了接口,API較為復(fù)雜。

(5)StAX(Streaming API for XML)

流模型中的拉模型分析方式。提供基于指針和基于迭代器兩種方式的支持,JDK1.6新特性

【和推式解析相比的優(yōu)點(diǎn)】

①在拉式解析中,事件是由解析應(yīng)用產(chǎn)生的,因此拉式解析中向客戶端提供的是解析規(guī)則,而不是解析器。

②同推式解析相比,拉式解析的代碼更簡(jiǎn)單,而且不用那么多庫(kù)。

③拉式解析客戶端能夠一次讀取多個(gè)XML文件。

④拉式解析允許你過(guò)濾XML文件和跳過(guò)解析事件。

【簡(jiǎn)介】

StAX API的實(shí)現(xiàn)是使用了Java Web服務(wù)開(kāi)發(fā)(JWSDP)1.6,并結(jié)合了Sun Java流式XML分析器(SJSXP)-它位于

javax.xml.stream包中。XMLStreamReader接口用于分析一個(gè)XML文檔,而XMLStreamWriter接口用于生成一個(gè)

XML文檔。XMLEventReader負(fù)責(zé)使用一個(gè)對(duì)象事件迭代子分析XML事件-這與XMLStreamReader所使用的光標(biāo)機(jī)制

形成對(duì)照。

java解析xml的幾種方式哪種最好?

(1)DOM解析

DOM是html和昌戚xml的應(yīng)用程序接口(API),以層次結(jié)構(gòu)(類似于樹(shù)型)來(lái)組織節(jié)點(diǎn)和信息片段,映射談彎XML文檔的結(jié)構(gòu),允許獲取;

(2)SAX(Simple API for XML)解析

流模型中的"推"模型分析方式。通過(guò)事件驅(qū)動(dòng),每發(fā)現(xiàn)一個(gè)節(jié)點(diǎn)就引發(fā)一個(gè)事件,事件推給事件處理器,通過(guò)回調(diào)方法;

(1)、dom解析

dom解析是html和xml的應(yīng)用程序接口(api) 以層次結(jié)構(gòu)(類似與樹(shù)形)來(lái)組織節(jié)點(diǎn) 和信息片段 映射xml文耐侍陵檔的結(jié)構(gòu) 允許獲取和操作文檔的任意部分 是官方標(biāo)準(zhǔn)

(2)、sax解析

流模型中in個(gè)的 推 模型 分析方式 通過(guò)事件驅(qū)動(dòng) 沒(méi)發(fā)現(xiàn)一個(gè)節(jié)點(diǎn)就引發(fā)一個(gè)事件 事件推給事件處理期 遍歷回調(diào)方法

(3)、stax

流模型中的拉模型分析方式 提供基于指針和基于迭代器兩種方式 的支持1.6新特征

(4)、jdom

java特定的文檔對(duì)象模型 自身不包含解析器 使用sax

(5)、jdom4j

簡(jiǎn)單易用 采用java集合框架 兵完全支持dom sax 和jaxp


名稱欄目:java代碼解析xml java代碼解析xml文件
網(wǎng)站鏈接:http://weahome.cn/article/ddpjsjo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部