2020-11-2(安卓入门(每个字皆为手打))
文章目錄
- 預置注解三個
- xml
- 文檔的聲明:
- 元素:
- 屬性
- 注釋
- CDATA區
- 特殊字符(對于一些特殊字符,若要在主體元素中顯示,必須進行轉義)
- xml約束
- 約束技術:
- 1.xml DTD
- 2.xml Schema
- 3.XDR
- 4.SOX
- 解析xml文檔
- Dom解析
- Sax解析
- 優點:
- 缺點:
- Pull解析
jdk1.5之后加入的三個api
預置注解三個
Deprecated 當前方法是過時的,在api中有更好的實現
Supresswarning 壓制警告
Override 當前方法是覆蓋了父類方法
xml
文檔的聲明:
<?xml version="1.0" encoding="utf-8"?>必須在文檔的第一行進行聲明(encoding后視情況而定)
元素:
<tag></tag>起始標簽 閉合標簽
如果標簽中沒有其它內容可以自閉和</tag>
標簽嵌套的時候需要注意,先開始的標簽后閉合,后開始的標簽先閉合
根標簽必須有只能有一個
a 區分大小寫,例如</a></A>是兩個不同的標記
b.不能以數字或“_”下劃線開頭
c.不能以xml(或XML,或Xml等保留字)開頭
d.不能包含空格
e.名稱中間不能包含冒號(:)
屬性
a.屬性得寫在開始標簽
b.屬性的命名規則跟元素命名規則一樣
c.屬性一定要用引號包起來,單引號雙引號都可以
d屬性的內容可以用字標簽來表示
注釋
<!--注釋內容--> a.xml聲明之前不能有注釋 b注釋不能嵌套 <--!一大段注釋 …… <--!有一段注釋--> …… -->CDATA區
通過CDATA區傳遞的內容不會被解析器解析
<![CDATA[ <lastname>liu <<<<<>>>>></lastname>]]>特殊字符(對于一些特殊字符,若要在主體元素中顯示,必須進行轉義)
xml約束
格式良好的xml:遵循xml語法的xml
有效的xml:遵循 約束文檔的xml
(格式良好不一定有效,有效的一定格式良好)
作用:
約束文檔定義了xml中允許出現的元素名稱,屬性及元素出現的順序
約束技術:
1.xml DTD
dtd可以寫在單獨的文件中,擴展名是dtd,且必須使用uft-8編碼
可以聲明在xml文件中
通過dtd可以約束元素的名稱 元素出現的順序 出現的次數 屬性的名稱 屬性的類型 屬性是否必須出現 屬性得值是否可以重復
2.xml Schema
a.擴展名.xsd本身是一份xml文檔
b.對名稱空間(namespace)支持的很好
c.支持的類型比dtd更豐富約束得更加的細致,可以支持自定義的類型
d.schema正在逐步替換dtd,在Android中清單文件和布局文件 用到了schema技術
3.XDR
4.SOX
解析xml文檔
Dom解析
加載整個文檔,樹狀結構,Document對象,可以修改文檔
獲取工程->獲取解析器
編程思路:
如果想修改
TransformerFactory-->Transformer-->Transform(source,result)直接修改內存里面的值是毫無作用的,需要借助StreamResult流
Sax解析
獲取工程->獲取解析器
一個元素一個元素解析,函數自動會被調用(不能停下來)
xmlreader 設置一個處理器ContentHandler(sax解析自動調用里面函數startDocument endDocument startElement endElement character)然后xmlreader.parse();
- 邊讀邊解析
- 當使用sax方法讀到特定的標簽時候,自動調用相應的方法進行操作
優點:
不會造成內存溢出
缺點:
不能修改xml文件
Pull解析
(安卓里面做不需要導包,但在java里面搞需要導入相應的jar包)
拿到解析器后,setinput(事件類型的常量XMLPullParse.END_TAG START_TAG START_DOCUMENT END_DOCUMENT TEXT )
一個元素一個元素解析,需要手動調用next函數,讓它往下執行(可以停下來)
- 獲取工廠
- 獲取解析器
- 設置輸入源
- 獲取事件類型
json (對于純移動端項目)
可以用于傳遞數據 保存數據 優勢節省流量
總結
以上是生活随笔為你收集整理的2020-11-2(安卓入门(每个字皆为手打))的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2020-11-1(xml)
- 下一篇: 2020-11-4(安卓开发)