日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2020-11-2(安卓入门(每个字皆为手打))

發布時間:2025/3/21 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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>
    標簽嵌套的時候需要注意,先開始的標簽后閉合,后開始的標簽先閉合
    根標簽必須有只能有一個
  • 注意:xml中不會忽略主題內容中的出現的空格和換行(浪費流量,盡量去掉)
  • 一個xml元素可以包含字母,數字以及其它一些可見字符,但必須遵守以下規范
    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對象,可以修改文檔
    獲取工程->獲取解析器

  • 把整個文檔加載到內存中——>Document 所以可以對文檔進行修改
  • 如果文件比較大,可能會導致內存溢出
    編程思路:
  • DocumentBuilderFactory--->DocumentBuilder-->Document--->通過節點獲得NodeList-->具體的Node

    如果想修改

    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函數,讓它往下執行(可以停下來)

    • 獲取工廠
    • 獲取解析器
    • 設置輸入源
    • 獲取事件類型
    int event Type=getEvenType() parse.next(); --->解析下一個元素,并且返回事件類型 while(event Type!=END_DOCUMENT){ switch(eventType){ getName()----->獲取元素的名字} eventType=parse.next(); }

    json (對于純移動端項目)
    可以用于傳遞數據 保存數據 優勢節省流量

    JSONObject{'key':value} valued的類型: int long double boolean NULL JSONObject JSONArray JSONArray[{ },{ }]

    總結

    以上是生活随笔為你收集整理的2020-11-2(安卓入门(每个字皆为手打))的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。