1. XML基礎
1. 概念 : Extensible Markup Language 可擴展標記語言
- 可擴展: 標籤都是自定義的。
2. 功能 :
- xml存儲數據
- 配置文件
- 在網絡中傳輸
3. xml和html的區別:
- xml標籤都是自定義的,html標籤是預定義。
- xml 的語法嚴格, html 語法鬆散
- xml是存儲數據的,html是展示數據的。
4. w3c : 萬維網聯盟
語法:
基本語法:
- xml文檔後綴名 .xml
- xml第一行必須定義文檔聲明
- xml文檔有且僅有一個根標籤
- 屬性值必須使用引號(單雙都可)引起來
- 標籤必須正確關閉 (有結束標籤)
- xml 標籤名稱區分大小寫
組成部分:
- 文檔聲明
- 格式:<?xml version='1.0' ?> 問號和<及xml之間不能有空格。
- 屬性列表:
- version : 版本號,必需的屬性。
- encoding :編碼方式,告知解析引擎當前文檔使用的字符集,默認:ISO-8859-1
- standalone : 是否獨立,取值:yes(不依賴其他文件)/no(依賴其他文件)
- 指令(瞭解): 結合CSS來控制標籤的樣式
- <?xml-stylesheet type="text/css" href="a.css" ?>
- 標籤:標籤名稱自定義
- 名稱可以包含字母、數字及其他字母
- 名稱不能以數字或標點符號開始
- 名稱不能以字母xml ( 或者 XML 、Xml 等等)開始
- 名稱不能包含空格
- 屬性 :
- id屬性值唯一
- 文本:
- 下面代碼的第一個if語句,瀏覽器無法識別,使用第二個轉義符 纔可以。
- CDATA區: 該區域中的數據會被原樣展示。
- 格式: <![CDATA[ 數據 ] ]>
2. XML約束
約束: 規定xml文檔的書寫規則
- 作爲框架的使用者(程序員):
- 能夠在xml中引入約束文檔
- 能夠簡單的讀懂約束文檔
- 分類:
- DTD:一種簡單的約束技術
- Schema : 一種複雜的約束技術
- DTD:
- 引入dtd文檔到xml中
- 內部dtd : 將約束規則定義在xml文檔中
- 外部dtd : 將約束的規則定義在外部的dtd文件中
- 本地:<!DOCTYPE 根標籤名 SYSTEM “dtd文件的位置”>
- 網絡:<!DOCTYPE 根標籤名 PUBLIC “dtd文件名字” “dtd文件的位置URL”>
- Schema:
2. XML解析
解析:操作xml文檔,將文檔中的數據讀取到內存中
- 操作xml文檔
- 解析(讀取):將文檔中的數據讀取到內存中
- 寫入 : 將內存中的數據保存到xml文檔中。持久化的存儲
- 解析xml的方式:
- DOM : 將標記語言文檔一次性加載進內存,在內存中形成一顆dom樹。
1. 優點: 操作方便,可以對文檔進行CRUD的所有操作。
2. 缺點: 佔內存- SAX : 逐行讀取,基於事件驅動的
1. 優點: 不佔內存。
2. 缺點: 只能讀取,不能增刪改。- xml常見的解析器:
- JAXP : sun公司提供的解析器,支持dom和sax兩種思想。
- DOM4J : 一款非常優秀的解析器。
- Jsoup : jsoup 是一款Java 的HTML解析器,可直接解析某個URL地址、HTML文本內容。它提供了一套非常省力的API,可通過DOM,CSS以及類似於jQuery的操作方法來取出和操作數據。
- PULL : Android 操作系統內置的解析器,sax方式的。
- Jsoup: jsoup 是一款Java 的HTML解析器,可直接解析某個URL地址、HTML文本內容。它提供了一套非常省力的API,可通過DOM,CSS以及類似於jQuery的操作方法來取出和操作數據。
- 快速入門:
- 步驟:
- 導入jar包
- 獲取Document 對象
- 獲取對應的標籤Element對象
- 獲取數據