教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

XML是什么:可拓展標(biāo)記語(yǔ)言

更新時(shí)間:2019年01月10日13時(shí)29分 來(lái)源:傳智播客 瀏覽次數(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ì)象用來(lái)獲取指定標(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)簽名(無(wú)視嵌套找到所有)")返回list(JXNode)

  5.獲取屬性值或者文本內(nèi)容 text() html() attr("屬性名)返回屬性值



作者:傳智播客JavaEE培訓(xùn)學(xué)院

首發(fā):http://java.itcast.cn

0 分享到:
和我們?cè)诰€交談!