For investors
股價:
5.36 美元 %For investors
股價:
5.36 美元 %認真做教育 專心促就業(yè)
XML 經(jīng)常用作 Internet 上的一種數(shù)據(jù)格式,其文件格式想必大家都比較清楚,在這里我結(jié)合Android平臺,來說明Android SDK提供的讀寫XML的package。
首先介紹下Android SDK與Java SDK在讀寫XML文件方面,數(shù)據(jù)包之間的關(guān)系。Android 平臺最大的一個優(yōu)勢在于它利用了 Java 編程語言。Android SDK 并未向標準 Java Runtime Environment (JRE) 提供一切可用功能,但它支持其中很大一部分功能。Java 平臺支持通過許多不同的方式來使用 XML,并且大多數(shù)與 XML 相關(guān)的 Java API 在 Android 上得到了完全支持。舉例來說,Java 的 Simple API for XML (SAX) 和 Document Object Model (DOM) 在 Android 上都是可用的,這些 API 多年以來一直都是 Java 技術(shù)的一部分,較新的 Streaming API for XML (StAX) 在 Android 中并不可用。但是, Android 提供了一個功能相當?shù)膸?。最后,Java XML Binding API 在 Android 中也不可用,這個 API 已確定可以在 Android 中實現(xiàn)。Android SDK提供了如下package來支持XML的讀寫:
包 功能介紹
javax.xml根據(jù) XML 規(guī)范定義核心 XML 常量和功能。
javax.xml.parsers提供DOM和SAX方法解析XML文檔
org.w3c.domW3C提供的使用DOM方法讀取XML
org.xml.sax提供核心SAX APIs
org.xmlpull.v1
額外補充說明下,在android.util數(shù) 據(jù)包中也提供了一個類Xml,不過這個類就是把以上package簡單封裝了下。
讀取XML主要有2種方法:DOM與SAX(Simple API for XML),在這里對這2種方法分別加以說明。
DOM(文檔對象模型),為XML文檔的解析定義了一組接口,解析器讀入整個文檔,然后構(gòu)造一個駐留內(nèi)存的樹結(jié)構(gòu),然后代碼就可以使用DOM接口來 操組整個樹結(jié)構(gòu),其他點如下:
優(yōu)點:整個文檔樹都在內(nèi)存當中,便于操作;支持刪除、修改、重新排列等多功能。
缺點:將整個文檔調(diào)入內(nèi)存(經(jīng)常包含大量無用的節(jié)點),浪費時間和空間。
使用場合:一旦解析了文檔還需要多次訪問這些數(shù)據(jù),而且資源比較充足(如內(nèi)存、CPU等)。
為了解決DOM解析XML引起的這些問題,出現(xiàn)了SAX。SAX解析XML文檔為事件驅(qū)動,詳細說明請閱讀Android讀寫XML(中)–SAX。當解析器發(fā)現(xiàn)元素開始、元素結(jié)束,文本、文檔的開始或者結(jié)束時,發(fā)送 事件,在程序中編寫響應(yīng)這些事件的代碼,其特點如下:
優(yōu)點:不用事先調(diào)入整個文檔,占用資源少。尤其在嵌入式環(huán)境中,極力推薦采用SAX進行解析XML文檔。
缺點:不像DOM一樣將文檔長期駐留在內(nèi)存,數(shù)據(jù)不是持久的,事件過后,如沒有保存數(shù)據(jù),那么數(shù)據(jù)就會丟失。
使用場合:機器性能有限,尤其是在嵌入式環(huán)境,如Android,極力推薦采用SAX進行解析XML文檔。
大多數(shù)時間,使用 SAX 是比較安全的,并且 Android 提供了一種傳統(tǒng)的 SAX 使用方法,以及一個便捷的 SAX 包裝器。如果XML文檔比較小,那么 DOM 可能是一種比較簡單的方法。如果XML文檔比較大,但只需要文檔的一部分,則 XML Pull 解析器可能是更為有效的方法。最后對于編寫 XML,Pull 解析器包也提供了一種便捷的方法,詳細說明請閱讀Android讀寫XML(下)——數(shù)據(jù)寫入XML文檔。因此,無論我們的 XML 需求如何,Android 都能在一定程度上滿足我們的需求。
【免責(zé)聲明】本文部分系轉(zhuǎn)載,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問題,請在30日內(nèi)與聯(lián)系我們,我們會予以更改或刪除相關(guān)文章,以保證您的權(quán)益!