更新時(shí)間:2019年01月10日13時(shí)29分 來源:傳智播客 瀏覽次數(shù):
XML是什么:可拓展標(biāo)記語(yǔ)言
XML的作用: 主要作為配置文件使用,也可以作為一種數(shù)據(jù)協(xié)議進(jìn)行數(shù)據(jù)跨平臺(tái)傳輸
XML的缺點(diǎn): 由于寫法繁瑣不可以省略,浪費(fèi)流量
XML的語(yǔ)法格式:
<>xml version='1.0' encoding = 'utf-8' ?>
<根標(biāo)簽>
<子標(biāo)簽>
內(nèi)容
語(yǔ)法書寫需要注意的點(diǎn):
1.不i需座位第一行第一列
2.一個(gè)XML文檔中只能有一個(gè)根標(biāo)簽
3.根標(biāo)簽中才支持子標(biāo)簽
4.標(biāo)簽中可以存在屬性與內(nèi)容
5.XML文件后綴名為.xml
6.encoding屬性的默認(rèn)編碼為國(guó)際標(biāo)準(zhǔn)編碼 ISO-8859-1
CDATA
約束,限制
dtd約束和schema約束的區(qū)別
1.dtd約束文件后綴名是.dtd, schema的文件后綴名是xsd
2.schema約束比dtd約束的功能更加強(qiáng)大
3.dtd約束只能引入一個(gè)約束文件
4.schema約束只是命名空間(也叫名稱空間),namespace
xml的解析方式(原理!!)
1.dom解析
把文檔全部加載,可以對(duì)文檔進(jìn)行增刪改查,對(duì)內(nèi)存占用較大,可能導(dǎo)致內(nèi)存溢出
2.sax解析
逐行解析,解析基于事件驅(qū)動(dòng),只能讀取,對(duì)內(nèi)存開銷小,速度快
xml的解析器有哪些(解析xml的jar包)?
jaxp
*dom4j
*jsoup(已經(jīng)開始學(xué)習(xí)的)
pull(基于安卓的解析器)
XML如何借助第三方j(luò)ar包進(jìn)行解析
關(guān)注點(diǎn)(獲取)
1.jar包放在項(xiàng)目根目錄下的libs目錄下
2.要解析的xml文件再src目錄下!!
可以使用類加載器去找文件
String path=類型.class.getClassLoader().getResource("xml文件名").getPath();
inputStream is = 類名.class.getClassLoader().getResourceAsStream("xml文件名")
3.Jsoup的作用加載xml文件獲取document對(duì)象
4.document對(duì)象用來獲取指定標(biāo)簽的Element對(duì)象
5.Element對(duì)象作用,獲取element對(duì)象,獲取屬性值,獲取內(nèi)容
6.jsoup中node是document和element的超類
jsoup使用步驟
1.加載xml文件以獲取document對(duì)象
2.通過document對(duì)象獲取指定標(biāo)簽(從整個(gè)文檔中搜索)
3.通過指定標(biāo)簽可以繼續(xù)查找子標(biāo)簽(從當(dāng)前標(biāo)簽搜索子元素)
4.通過標(biāo)簽獲取屬性值或者內(nèi)容->屬性值而不是屬性
方法:attr("屬性名稱)
text()
html()
快速獲取指定標(biāo)簽
選擇器:
標(biāo)簽選擇器,屬性選擇器,子元素選擇器,后代選擇器...
xpath:
1.導(dǎo)入JsoupXpath-0.3.2.jar
2.獲取document對(duì)象
3.將對(duì)象轉(zhuǎn)換成JXDocument對(duì)象 JXDocument 對(duì)象名 new JXDocument(document)
4.調(diào)用方法獲取指定標(biāo)簽 對(duì)象名.seIN("//標(biāo)簽名(無視嵌套找到所有)")返回list(JXNode)
5.獲取屬性值或者文本內(nèi)容 text() html() attr("屬性名)返回屬性值
首發(fā):http://java.itcast.cn
北京校區(qū)