android學習札記第8章之XML及處理XML解析和創建?

Tags: 札記,

XML是可擴展的標記語言,結構化的數據,由程序解析數據。對於XML的定義,在文檔類型定義在一個領域內,由組織、企業、技術領域,指定的XML規範,而這種規範就是DTD。

java/android中處理XML解析和創建可以使用三大工具:

SAX:Simple API for XML

DOM4J:Document Object Model for Java

Pull:Android集成的一個開源開發包

而android系統中集成了Pull,用來解析、創建XML。

工具/原料

JDK、eclipse、android SDK、ADT

一、XML規範——DTD

定義(定義好後可使用快捷鍵):

在文檔類型定義在一個領域內,由組織、企業、技術領域,指定的XML規範。

對根標籤和內部所有標籤進行定義

屬性 CDATA #REQUIRED

屬性 CDATA #IMPLIED

>

] >

android學習札記第8章之XML及處理XML解析和創建

引用:

系統內部規範:、在dtd文件中只插入之間的內容。

對當前軟件系統公開統一的規範:

android學習札記第8章之XML及處理XML解析和創建

android學習札記第8章之XML及處理XML解析和創建

二、java/android中三大處理XML解析、創建工具

SAX:

㈠SaxParserFactory

負責創建Sax解析器的工廠(需要先建立工廠,再建立解析器。)

㈡SaxParser

Sax解析器,用來解析xml文檔

㈢DefaultHandler

解析過程中,用來處理從xml提取出來的數據(xml中從頭到尾提取數據)

android學習札記第8章之XML及處理XML解析和創建

android學習札記第8章之XML及處理XML解析和創建

DOM4J:

①第三方解析XML開發包,在內存中生成一個樹狀結構,API參考官方文檔。

②XPath

用路徑的形式來表示數據的位置

/email/to/to-email:定位到to-email

/email/body:定位到body

/email/@date:定位到屬性date

/email//to-email:定位到email下所有的to-email

//to-email:定位到根下的to-email

③Node

——Document

——Element

——Text

——Attribute

——Comment

——CDSect

④創建樹

Document doc=DocumentHelper.createDocument();//創建樹根

XMLWriter writer=new XMLWriter(輸出流out,格式控制工具format);

out=FileOutputStream();

OutputFormat format=OutputFormat.createCompactFormat();//壓縮格式

OutputFormat format=OutputFormat.createPrettyPrint();//有換行格式

format.setEoding("utf-8");

…………

android學習札記第8章之XML及處理XML解析和創建

android學習札記第8章之XML及處理XML解析和創建

android學習札記第8章之XML及處理XML解析和創建

android學習札記第8章之XML及處理XML解析和創建

XML PULL:(需要新建android項目)

①概述,第三方開源API,已經集成到android開發包中。

XmlPullParserFactory

Xml:輔助類

XmlPullParser

XmlSerializer

②使用方法

Ⅰ、XmlPullParserFactory

A、負責創建解析器和序列化器的工廠類

B、創建對象:

XmlPullParserFactory f=XmlPullParserFactory.newInstance();

C、方法:

newPullParser():創建解析器

newSerializer():創建序列化器

Ⅱ、Xml

Xml.newPullParser():創建解析器,解析XML

Xml.newSerializer():創建序列化器,生成XML

③XmlPullParser解析器:

setInput(Reader in):設置輸入流。

setInput(InputStream in,String charset):設置輸入流並指定字符編碼。

next():跳到下一段,返回int數字代碼,表示跳到的數據類型,結束之後,再向回跳,返回。

XmlPullParser.END_DOCUMENT==1。

getEventType():獲得當前的位置數據類型的代碼。

getName():數據類型是XmlPullParser.START_TAG、XmlPullParser.END_TAG時,在開始標籤和結束標籤上,獲得標籤名。

getText():數據類型是:XmlPullParser.TEXT時,如果當前位置是文本數據,用這個方法,可以去除文本內容。

getAttributeCount():獲得屬性的數量。

getAttributeName():獲得屬性名。

getAttributeValue():獲得屬性值。

getAttributeValue(命名空間,屬性名):命名空間,屬性名:獲得指定屬性名稱對應的值。

④XmlSerializer生成XML:向用戶申請外部存儲權限:WRITE_EXTERNAL_STORAGE

setOutput(Writer out):設置輸出流。

setOutput(Writer out,編碼):設置輸出流並指定字符編碼。

startDocument(編碼,是否是獨立文件):輸出頭標籤,true表示不依賴其他文檔。

startTag():輸出開始標籤。

attribute():輸出屬性。

text():輸出文本。

endTag():輸出結束標籤。

android學習札記第8章之XML及處理XML解析和創建

android學習札記第8章之XML及處理XML解析和創建

注意事項

XML編寫時要規範

android中集成了Pull處理XML的工具,所以要重點掌握。

相關問題答案