我的学习之路_第十六章_xml
【XML】
可擴展的標記語言
作用:存放數據、配置文件
【XML的語法】
xml的文件擴展名必須為: xml
xml的內容必須滿足以下要求:
1.固定的文檔聲明
2.合格的元素和屬性
3.正確的注釋
4.符合要求的特殊字符編寫規則
●文檔聲明 ( <?xml version="1.0" encoding = "UTF-8" ?> )
1.文檔聲明必須以<?xml 開頭, 以?>結束
2.文檔聲明必須從文檔的0行0列位置開始
3.文檔聲明的兩個屬性:
a. version: 指定的xml文檔版本.必須屬性
b. encoding: 指定當前文檔的編碼. 可選屬性,默認值為:UTF-8
●元素 <bean> </bean>
1.元素是xml文檔中重要的組成部分,
2.普通元素的結構開始標簽、元素體、結束標簽組成.
3.元素體:元素體可以是元素,也可以是文本.
4.空元素:空元素只有開始標簽,沒有結束標簽,但元素必須自己閉合.<a/>
5.元素命名:
a) 區分大小寫
b) 不能使用空格鍵,不能使用冒號
c) 不建議以xml開頭,不管大寫還是小寫.
6.格式良好的xml文檔,必須只有一個根元素.(文檔聲明下來的第一個元素就是根元素)
●屬性(attribute)
<Person id="g001" name="二狗" ></Person>
1.屬性是元素的一部分,必須出現在元素開始標簽中,必須用空格分開,多個元素之間也用空格隔開
2.屬性的定義格式:屬性名=屬性值,其中屬性值必須用單引或者雙引
3.一個元素可以有0-n個屬性,但是一個元素中,不能出現同名屬性
4.屬性名不能使用空格,冒號等特殊符號,而且必須以字母開頭
5.多個屬性之間沒有先后順序
●注釋
xml的注釋,以<!-- 開始, 以--> 結束.注釋內容不會被xml解析器解析!
【xml的轉義字符】
< &lt;
> &gt;
" ";
' &apos;
& &;
列入 1<3 在xml中 1 <;3
【CDATA】
格式 <![CDATA[
里面可以寫任何內容,
都會以文本的格式出現
里面的出現的字符都無需轉義
]]>
作用:提高了xml文檔的可讀性
【XML約束】
在xml技術里,可以編寫一個文檔來約束一個xml文檔的書寫規范,這稱之為xml約束
常見的約束有 DTD , Schena
DTD語法:
▲ 文檔聲明
1.內部DTD,在xml文檔內部嵌入,值對當前xnl有效
2.外部DTD- 本地DTD,DTD文檔在本地系統上,公司內部自己項目使用.(SYSTEM )
3.外部DTD- 公共DTD,DTD文檔在網絡上,一般都有框架提供(PUBLIC )
公共DTD包含5部分內容:
1.<!DOCTYPE:固定格式
2.beans : 規定根元素叫beans
3.PUBLIC : 公共的,說明DTD 約束文檔來源網絡
4."-//SPRING//DTD BEAN 2.0//EN": 約束文檔的名稱,有框架寫好提供.
5.http://www.springframework.org/dtd/spring-beans-2.0.dtd:約束文檔在網絡上的位置
▲ 元素申明
? 表示該對象可以出現0次或者1次,
+ 表示該對象可以出現1次或者1次以上
* 表示可以出現任意次數
( ) 一組數據
| 選擇關系,只能在多個元素之間選擇一個
, 順序關系,規定:a,b,c 寫xml文檔只能按照abc順序編寫
【使用DTD約束文檔的步驟】
1.每一個DTD約束文檔中都會有一行代碼以 <!DOCTYPE開頭,賦值過來放在xml文檔中
a.!DOCTYPE : 固定的DTD約束文檔的格式
b.beans : 規定xml文檔中的根元素只能叫beans
c.SYSTEM : 系統, dtd約束文檔中來源本地的操作系統
d: "bean.dtd" : 約束文檔的位置,我們使用的約束文檔在當前文件夾下,可以使用"bean,dtd"
2.根據根元素的名字,寫出根元素
3.鼠標放在根元素上/或者按F2,根據提示寫出xml文檔
Schema約束
▲命名空間
命名空間是用來處理元素和屬性的名稱沖突問題
約束文檔和xml的關系
約束 約束
官方文檔---->自定義schema文檔---->xml文檔
聲明命名空間:
默認命名空間:<xxx xmlns=" " >, 使用<標簽>
顯式命名空間:<xxx xmlns:別名=" "> , 使用<別名:標簽>
【Schema 約束文檔的使用】:
1.每一個schema約束文檔,都必須有一個命名空間(namespace)
起名要求:全球唯一
使用域名(網址) 命名:http://www.itcast.cn/web01/01
bean-schema.xsd文檔中的命名空間
targetNamespace="http://itcast.cn/bean"
2.在xml文檔中聲明命名空間
默認聲明:
xmlns="http://www.itcast.cn/bean"
<bean></bean>
顯示聲明:
xmlns:my="http://www.itcast.cn/bean"
<my:bean></my:bean>
3.聲明schema約束文檔的位置
先聲明官方文檔的位置
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
根據官方文檔聲明自定義schema文檔的位置
xsi:chemaLocation="http://www.itcast.cn/bean bean-schema.xsd"
http://www.itcast.cn/bean : 命名空間
bean-schema.xsd:schema文檔的位置
【XML解析】
開發中比較常見的解析方式有三種:
1.DOM : 要求解析器把整個xml文檔裝載到內存,并解析成一個Document對象
a) 優點 : 元素與元素之間保留結構關系,所以可以進行增刪改查操作.
b) 缺點 : xml文檔過大,可能出現內存溢出顯示
2.SAX : 是一種速度更快,更有效的方法.它逐行掃描文檔,一邊掃描一邊解析
a) 優點 : 處理速度快,可以處理大文件
b) 缺點 : 只能讀,逐行后將釋放資源.
3.PULL : Android內置的xml解析方式,類似sax.
SAX(推): 就像一座山,逐層推掉,想要的保留下來,不想要的就扔掉.
PULL(拉) : 把想要的數據拉過來,不需要的數據連拉都不拉,直接扔掉
常見的解析發開包:
● JAXP: sum公司提供支持DOM和SAX開發包
● JDom: dom4j兄弟
● jsoup: 一種處理 HTML特定解析開發包
● dom4j: 比較常見的解析開發包,hibernate底層采用(主要用這個)
【使用dom4j解析xml文檔】
1.SAXReader對象(dom4j核心類)
利用方法 read(...)加載執行xml文檔
2.Document對象
返回值 Element getRootElement() 獲取根元素
3.Element對象
返回值 Element[] elements(...) 獲取的指定名稱的所有元素.可以不指定名稱
element(...) 獲得指定名稱第一個子元素,可以不指定名稱
getName() 獲得當前元素的元素名
attributeValue(...) 獲得指定屬性名的屬性值
elementText(...) 獲得指定名稱子元素的文本值
getText() 獲得當前元素的文本內容
?
轉載于:https://www.cnblogs.com/jia-/p/7071631.html
總結
以上是生活随笔為你收集整理的我的学习之路_第十六章_xml的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA记事本的图形用户界面应用程序含过
- 下一篇: CSS学习笔记 display属性