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

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

如何使用XML文檔進(jìn)行分析-創(chuàng)新互聯(lián)

小編給大家分享一下如何使用XML文檔進(jìn)行分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司一直秉承“誠(chéng)信做人,踏實(shí)做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個(gè)客戶多一個(gè)朋友!專注中小微企業(yè)官網(wǎng)定制,網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè),塑造企業(yè)網(wǎng)絡(luò)形象打造互聯(lián)網(wǎng)企業(yè)效應(yīng)。

怎樣使用XML文檔進(jìn)行分析

一、推分析之于拉分析

比較于推分析,拉分析具有如下一些優(yōu)點(diǎn):

1.在拉分析中,事件是由分析應(yīng)用程序生成的,因此把分析規(guī)則提供到客戶端而不是分析器。

2.拉分析的代碼更簡(jiǎn)單并且它比推分析有更少的庫。

3.拉分析客戶端能同時(shí)讀多個(gè)XML文檔。

4.拉分析允許你過濾XML文檔并且跳過分析事件。

二、了解StAX

針對(duì)于XML的流式API(StAX),是在2004年3月的JSR173規(guī)范中引入,這是一種針對(duì)XML的流式拉分析API.StAX是JDK6.0提供的一種新特征,你可以從此處下載它的測(cè)試版本試用。

一個(gè)推模型分析器不斷地生成事件,直到XML文檔被完全分析結(jié)束。但是,拉分析由應(yīng)用程序進(jìn)行調(diào)整;因此,分析事件是由應(yīng)用程序生成的。這意味著,使用StaX,你可以推遲分析-在分析時(shí)跳過元素并且分析多個(gè)文檔。在使用DOMAPI的時(shí)候,你必須把整個(gè)的XML文檔分析成一棵DOM結(jié)構(gòu),這樣也就降低了分析效率。而借助于StAX,在分析XML文檔時(shí)生成分析事件。有關(guān)于StAX分析器與其它分析器的比較在此不多介紹。

StAXAPI的實(shí)現(xiàn)是使用了JavaWeb服務(wù)開發(fā)(JWSDP)1.6,并結(jié)合了SunJava流式XML分析器(SJSXP)-它位于javax.xml.stream包中。XMLStreamReader接口用于分析一個(gè)XML文檔,而XMLStreamWriter接口用于生成一個(gè)XML文檔。XMLEventReader負(fù)責(zé)使用一個(gè)對(duì)象事件迭代子分析XML事件-這與XMLStreamReader所使用的光標(biāo)機(jī)制形成對(duì)照。本教程將基于JDK6.0中的StAX實(shí)現(xiàn)來完成對(duì)一個(gè)XML文檔的分析。

其實(shí),StaX僅僅是JDK6.0所提供的XML新特征之一。新的JDK6.0還提供了對(duì)針對(duì)于XML-Web服務(wù)的Java架構(gòu)(JAX-WS)2.0,針對(duì)于XML綁定的JavaAPI(JAXB)2.0,XML數(shù)字簽名API的支持,甚至還支持SQL:2003'XML'數(shù)據(jù)類型。

三、初步安裝

如果你正在使用JDK6.0,那么默認(rèn)情況下,StAXAPI位于Classpath中。如果你在使用JWSDP1.6,請(qǐng)把JWSDP1.6StAXAPI添加到classpath中。這需要把sjsxplibjsr173_api.jar和sjsxplibsjsxp.jar添加到CLASSPATH變量中。在目錄下安裝JWSDP1.6.Jsr173_api.jar相應(yīng)于JSR-173APIJAR,Sjsxp.jar相應(yīng)于SJXSP實(shí)現(xiàn)JAR.

四、使用XMLStreamWriter進(jìn)行寫操作

首先,你要?jiǎng)?chuàng)建將待分析的XML文檔。由StAX的XMLStreamWriter生成XML.然而,XMLStreamWriter的一個(gè)限制是,它不一定會(huì)生成良構(gòu)的文檔-而且生成的文檔也不一定是有效的。你需要確保生成的XML文檔是良構(gòu)的。列表1是一個(gè)由XMLStreamWriter生成的原始XML文檔的示例。

怎樣使用XML文檔進(jìn)行分析

在此,你試圖使用XMLStreamWriterAPI生成列表1中的catalog.xml.在本節(jié)中的代碼片斷節(jié)選自XMLWriter.java應(yīng)用程序,顯示于列表2中。首先,你將導(dǎo)入StAX包類,請(qǐng)參考下列編碼:

importjavax.xml.stream.*;

importjavax.xml.stream.events.*;

importjavax.xml.stream.XMLOutputFactory;

你要從一個(gè)XMLOutputFactory中得到你的XMLStreamWriter.因此,首先你必須創(chuàng)建一個(gè)新的XMLOutputFactory:

XMLOutputFactoryoutputFactory=XMLOutputFactory.newInstance();

接下來,創(chuàng)建一個(gè)FileWriter以輸出XML文檔-它將被生成到一個(gè)XML文件中:

FileWriteroutput=newFileWriter(newFile("C:/STAX/catalog.xml"));

接下來,創(chuàng)建一個(gè)XMLStreamWriter:

XMLStreamWriterXMLStreamWriterr=outputFactory.createXMLStreamWriter(output);

現(xiàn)在,使用writeStartDocument()方法創(chuàng)建一個(gè)文檔開頭。添加要在XML聲明中指定的編碼和版本(記住,指定的編碼并不是生成的XML文檔的編碼)。如果你需要指定XML文檔的編碼,該怎么辦呢?當(dāng)從一個(gè)XMLOutputFactory對(duì)象創(chuàng)建一個(gè)XMLStreamWriter對(duì)象時(shí),你會(huì)這樣做:

XMLStreamWriter.writeStartDocument("UTF-8","1.0");

使用writeComment()方法以輸出一個(gè)注釋:

XMLStreamWriter.writeComment("AOReillyJournalCatalog");

使用writeProcessingInstruction()方法以輸出一條處理指令:

XMLStreamWriter.writeProcessingInstruction("catalog","journal='OReilly'");

使用writeStartElement()方法以輸出'catalog'元素的開始(元素前綴和命名空間URI也可以在這個(gè)方法中指定的):

XMLStreamWriter.writeStartElement("journal","catalog","/tupian/20230522/  使用writeNamespace()方法以添加'journal'命名空間聲明(命名空間前綴和命名空間URI也是在這個(gè)方法中指定的):

XMLStreamWriter.writeNamespace("journal","/tupian/20230522/  再次使用writeNamespace()方法添加xsi命名空間:

XMLStreamWriter.writeNamespace("xsi","http://www.w3.org/2001/XMLSchema-instance");

使用writeAttribute()方法添加xsi:namespaceSchemaLocation屬性:

XMLStreamWriter.writeAttribute("xsi:noNamespaceSchemaLocation","file://c:/Schemas/catalog.xsd");

使用writeAttribute()方法添加'publisher'屬性:

XMLStreamWriter.writeAttribute("publisher","OReilly");

輸出'journal'元素的開始。當(dāng)增加一個(gè)新元素時(shí),前一個(gè)元素的'>'括號(hào)也被添加上:

XMLStreamWriter.writeStartElement("journal","journal","http:

//OnJava.com/Journal");

使用writeAttribute()方法以添加'date'和'title'屬性。然后,使用writeElement()方法以添加'article'和'title'元素。然后,使用writeCharacters()方法輸出'title'元素的文本:

XMLStreamWriter.writeCharacters("DataBindingwithXMLBeans");

任何包含文本或子元素的元素都要有一個(gè)結(jié)束標(biāo)簽。使用writeEndElement()元素來添加'title'元素的結(jié)束標(biāo)簽:

XMLStreamWriter.writeEndElement();

添加'author'元素和'journal'元素的結(jié)束標(biāo)簽。在writeEndElement()方法中,不必要指定元素前綴和命名空間URI.以類似方式添加另一個(gè)'journal'元素。然后,添加'catalog'元素的結(jié)束標(biāo)簽。最后,輸出緩沖的數(shù)據(jù):

XMLStreamWriter.flush();

最后一步,關(guān)閉XMLStreamWriter.

XMLStreamWriter.close();

這就是生成catalog.xml的過程。

源碼中的列表2展示了完整的Java應(yīng)用程序-XMLWriter.java.這個(gè)應(yīng)用程序可以作為一個(gè)命令行應(yīng)用程序運(yùn)行或在一種例如Eclipse這樣的IDE中運(yùn)行。

五、使用XMLStreamReader進(jìn)行分析

通過使用XMLStreamReaderAPI分析列表1中的文檔,我們來詳細(xì)分析一下其工作原理。XMLStreamReader使用一種光標(biāo)分析XML文檔。它的接口包含一個(gè)next()方法-由它分析下一個(gè)分析事件。getEventType()方法返回事件類型。后面的代碼片斷來自于XMLParser.java應(yīng)用程序,詳見列表3.

在這個(gè)XMLParser.java應(yīng)用程序中,首先,你要導(dǎo)入StAX類:

importjavax.xml.stream.*;

importjavax.xml.stream.events.*;

importjavax.xml.stream.XMLInputFactory;

然后,創(chuàng)建一個(gè)XMLInputFactory,由此你會(huì)得到一個(gè)XMLStreamReader:

XMLInputFactoryinputFactory=XMLInputFactory.newInstance();

以上是“如何使用XML文檔進(jìn)行分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


當(dāng)前題目:如何使用XML文檔進(jìn)行分析-創(chuàng)新互聯(lián)
URL標(biāo)題:http://weahome.cn/article/djegsd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部