<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      【精選】XML技術(shù)知識(shí)點(diǎn)合計(jì)

      XML概述

      在這里插入圖片描述

      概念

      XML(Extensible Markup Language):可擴(kuò)展標(biāo)記語言

      可擴(kuò)展:標(biāo)簽都是自定義的。

      發(fā)展歷程

      HTML和XML都是W3C(萬維網(wǎng)聯(lián)盟)制定的標(biāo)準(zhǔn),最開始HTML的語法過于松散,于是W3C制定了更嚴(yán)格的XML語法標(biāo)準(zhǔn),希望能取代HTML。但是程序員和瀏覽器廠商并不喜歡使用XML,于是現(xiàn)在的XML更多的用于配置文件傳輸數(shù)據(jù)等功能。

      是誰造成的HTML語法松散?

      瀏覽器廠商。最開始W3C制定HTML的時(shí)候語法還是比較嚴(yán)格的。但瀏覽器廠商為了搶占市場,語法錯(cuò)誤也可以解析成功HTML,最后“內(nèi)卷”到HTML即使語法非常混亂也是可以被瀏覽器解析。

      image-20220528165807275

      tips:歸根到底是語法的制定者使用者不一致造成了HTML語法混亂,JAVA語法嚴(yán)格就是因?yàn)閖ava語言的運(yùn)行工具java虛擬機(jī)也是sun公司(現(xiàn)在是oracle)出品的,語法不通過不讓運(yùn)行。

      為什么程序員不使用XML寫前端頁面?

      因?yàn)槌绦騿T松散慣了,不想寫很嚴(yán)格的代碼。同樣掙一萬塊錢,誰會(huì)從每月上一天班的公司跳槽到996的公司呢?

      XML的功能

      1. 配置文件:在今后的開發(fā)過程當(dāng)中我們會(huì)頻繁使用框架(框架:半成品軟件),使用框架時(shí),需要寫配置文件配置相關(guān)的參數(shù),讓框架滿足我們的開發(fā)需求。而我們寫的配置文件中就有一種文件類型是XML。

        日后編寫大型項(xiàng)目,不可能從頭到尾都是原創(chuàng)代碼,很多功能前人已經(jīng)寫好,我們只需要使用前人寫好的半成品軟件(框架),再加入一些符合我們需求的配置即可完成開發(fā)。

      2. 傳輸數(shù)據(jù):在網(wǎng)絡(luò)中傳輸數(shù)據(jù)時(shí)并不能傳輸java對(duì)象,所以我們需要將JAVA對(duì)象轉(zhuǎn)成字符串傳輸,其中一種方式就是將對(duì)象轉(zhuǎn)為XML類型的字符串。

        比如攜程等旅游網(wǎng)站可以買火車票,但他們其實(shí)也是替12306賣票,此時(shí)他們就需要拿到12306的票務(wù)數(shù)據(jù)。JAVA對(duì)象不能在網(wǎng)絡(luò)上傳輸,可以轉(zhuǎn)為XML類型的字符串。

      XML和HTML的區(qū)別

      1. XML語法嚴(yán)格,HTML語法松散
      2. XML標(biāo)簽自定義,HTML標(biāo)簽預(yù)定義

      XML基本語法

      • 文件后綴名是.xml
      • 第一行必須是文檔聲明
      • 有且僅有一個(gè)根標(biāo)簽
      • 標(biāo)簽必須正確關(guān)閉
      • 標(biāo)簽名區(qū)分大小寫
      • 屬性值必須用引號(hào)(單雙都可)引起來

      XML組成部分

      在這里插入圖片描述

      文檔聲明

      文檔聲明必須放在第一行,格式為:

      <?xml 屬性列表 ?>
      

      屬性列表:

      • version:版本號(hào)(必須)
      • encoding:編碼方式

      標(biāo)簽

      XML中標(biāo)簽名是自定義的,標(biāo)簽名有以下要求:

      • 包含數(shù)字、字母、其他字符
      • 不能以數(shù)字和標(biāo)點(diǎn)符號(hào)開頭,可以以_開頭
      • 不能包含空格

      指令(了解)

      指令是結(jié)合css使用的,但現(xiàn)在XML一般不結(jié)合CSS,語法為:

      <?xml-stylesheet type="text/css" href="a.css" ?>
      

      屬性

      屬性值必須用引號(hào)(單雙都可)引起來

      文本

      如果想原樣展示文本,需要設(shè)置CDATA區(qū),格式為:

      <![CDATA[文本]]>
      

      約束

      DTD約束

      ? 雖然XML標(biāo)簽是自定義的。但是作為配置文件時(shí),也需要遵循一定的規(guī)則。就比如在主板上硬盤口只能插硬盤,不能插入其他硬件。約束就是定義XML書寫規(guī)則的文件,約束我們按照框架的要求編寫配置文件。

      我們作為框架的使用者,不需要會(huì)寫約束文件,只要能夠在xml中引入約束文檔,簡單的讀懂約束文檔即可。XML有兩種約束文件類型:DTD和Schema。

      DTD是一種較簡單的約束技術(shù),引入方式如下:

      • 本地引入:

        <!DOCTYPE 根標(biāo)簽名 SYSTEM "dtd文件的位置">
        
      • 網(wǎng)絡(luò)引入:

        <!DOCTYPE 根標(biāo)簽名 PUBLIC "dtd文件的位置" "dtd文件路徑">
        

      student.dtd

      	<!ELEMENT students (student*) >
      <!ELEMENT student (name,age,sex)>
      <!ELEMENT name (#PCDATA)>
      <!ELEMENT age (#PCDATA)>
      <!ELEMENT sex (#PCDATA)>
      <!ATTLIST student number ID #REQUIRED>
      

      student.xml

      <?xml version="1.0" ?>
      <!DOCTYPE students SYSTEM "student.dtd">
      <students>
          <student number="bz001">
              <name>javaBoy</name>
              <age>10</age>
              <sex></sex>
          </student>
      </students>
      

      Schema約束

      Schema比DTD對(duì)XML的約束更加詳細(xì),引入方式如下:

      1. 寫xml文檔的根標(biāo)簽

      2. 引入xsi前綴:確定Schema文件的版本。

        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        
      3. 引入Schema文件

        xsi:schemaLocation="Schema文件定義的命名空間 Schema文件的具體路徑"
        
      4. 為Schema約束的標(biāo)簽聲明前綴

        xmlns:前綴="Schema文件定義的命名空間"
        

      Jsoup解析器

      在這里插入圖片描述

      XML解析思想

      XML解析即讀寫XML文檔中的數(shù)據(jù)。框架的開發(fā)者通過XML解析讀取框架使用者配置的參數(shù)信息,開發(fā)者也可以通過XML解析讀取網(wǎng)絡(luò)傳來的數(shù)據(jù)。XML有如下解析思想:

      DOM解析思想

      將標(biāo)記語言文檔一次性加載進(jìn)內(nèi)存,在內(nèi)存中形成一顆dom樹

      • 優(yōu)點(diǎn):操作方便,可以對(duì)文檔進(jìn)行CRUD的所有操作
      • 缺點(diǎn):占內(nèi)存
      SAX解析思想

      逐行讀取,基于事件驅(qū)動(dòng)的。

      • 優(yōu)點(diǎn):不占內(nèi)存,一般用于手機(jī)APP開發(fā)中讀取XML
      • 缺點(diǎn):只能讀取,不能增刪改

      XML常見解析器

      • JAXP:SUN公司提供的解析器,支持DOM和SAX兩種思想
      • DOM4J:一款非常優(yōu)秀的解析器
      • Jsoup:Jsoup是一款Java的HTML解析器,支持DOM思想。可直接解析某個(gè)URL地址、HTML文本內(nèi)容。它提供了一套非常省力的API,可通過CSS以及類似于jQuery的操作方法來取出和操作數(shù)據(jù)
      • PULL:Android操作系統(tǒng)內(nèi)置的解析器,支持SAX思想

      Jsoup快速入門

      xml1

      步驟:

      1. 導(dǎo)入jar包
      2. 加載XML文檔進(jìn)內(nèi)存,獲取DOM樹對(duì)象Document
      3. 獲取對(duì)應(yīng)的標(biāo)簽Element對(duì)象
      4. 獲取數(shù)據(jù)
      public class Demo1 {
        // 獲取XML中所有學(xué)生的姓名
        public static void main(String[] args) throws IOException {
          // 2.加載XML文檔進(jìn)內(nèi)存。獲取DOM樹對(duì)象Document
          // 2.1 獲取類加載器
          ClassLoader classLoader = Demo1.class.getClassLoader();
          // 2.2使用類加載器,找到XML文檔的路徑
          String path = classLoader.getResource("com/java/xsd/student.xml").getPath();
          // 2.3加載XML文檔進(jìn)內(nèi)存,并轉(zhuǎn)成Document對(duì)象
          Document document = Jsoup.parse(new File(path), "utf-8");
          // 3.獲取對(duì)應(yīng)的標(biāo)簽Element對(duì)象
          Elements name = document.getElementsByTag("name");
          // 4.獲取數(shù)據(jù)
          for (Element element : name) {
            String text = element.text();
            System.out.println(text);
           }
         }
      }
      
      

      Jsoup對(duì)象

      在這里插入圖片描述

      Jsoup:可以解析xml或html,形成dom樹對(duì)象。

      常用方法:

      • static Document parse(File in, String charsetName):解析本地文件
      • static Document parse(String html):解析html或xml字符串
      • static Document parse(URL url, int timeoutMillis):解析網(wǎng)頁源文件
      public class Demo2 {
        // Jsoup
        public static void main(String[] args) throws IOException {
          // 解析本地XML
          String path = Demo2.class.getClassLoader().getResource("com/java/xsd/student.xml").getPath();
          Document document = Jsoup.parse(new File(path), "utf-8");
          System.out.println(document);
          System.out.println("------------------");
          // 解析網(wǎng)絡(luò)資源
          Document document2 = Jsoup.parse(new URL("https://www.baidu.com"), 2000);
          System.out.println(document2);
         }
      }
      
      

      Document對(duì)象

      在這里插入圖片描述

      Document:xml的dom樹對(duì)象

      常用方法:

      • Element getElementById(String id):根據(jù)id獲取元素
      • Elements getElementsByTag(String tagName):根據(jù)標(biāo)簽名獲取元素
      • Elements getElementsByAttribute(String key):根據(jù)屬性獲取元素
      • Elements getElementsByAttributeValue(String key,String value):根據(jù)屬性名=屬性值獲取元素。
      • Elements select(Sting cssQuery):根據(jù)選擇器選取元素。

      Element對(duì)象

      在這里插入圖片描述

      Element: 元素對(duì)象

      常用方法:

      • String text():獲取元素包含的純文本。
      • String html():獲取元素包含的帶標(biāo)簽的文本。
      • String attr(String attributeKey):獲取元素的屬性值。

      XPath解析

      在這里插入圖片描述

      XPath即為XML路徑語言,它是一種用來確定標(biāo)記語言文檔中某部分位置的語言。

      使用方法:

      1. 導(dǎo)入Xpath的jar包
      2. 獲取Document對(duì)象
      3. Document對(duì)象轉(zhuǎn)為JXDocument對(duì)象
      4. JXDocument調(diào)用selN(String xpath),獲取List<JXNode>對(duì)象。
      5. 遍歷List<JXNode>,調(diào)用JXNodegetElement(),轉(zhuǎn)為Element對(duì)象。
      6. 處理Element對(duì)象。
      posted @ 2023-11-21 09:40  Gjq-  閱讀(40)  評(píng)論(0)    收藏  舉報(bào)  來源
      主站蜘蛛池模板: 免费人成再在线观看网站| 丰满熟女人妻一区二区三| 中国女人高潮hd| 老司机精品影院一区二区三区| 久青草精品视频在线观看| 免费夜色污私人影院在线观看| 成年男女免费视频网站| 国产精品成人免费视频网站京东| 国内精品久久久久影院薰衣草| 又大又粗欧美成人网站| 久久91精品牛牛| 久久精品女人天堂av免费观看 | 日韩亚洲欧美中文高清| 国产高清av首播原创麻豆| 久久精品熟妇丰满人妻久久| 成人亚洲av免费在线| 亚洲精品久久| 国产精品三级中文字幕| 欧美综合人人做人人爱| 国产综合久久久久鬼色| 潮喷失禁大喷水av无码| 国产11一12周岁女毛片| 色婷婷综合久久久久中文一区二区| 中文字幕无码av不卡一区| 欧美老少配性行为| 国产一区二区高潮视频| 欧美精品亚洲精品日韩专区| 亚洲国产日韩a在线亚洲| 亚欧洲乱码视频在线观看| 亚欧美闷骚院| 精品一区二区三区日韩版| 韩国福利片在线观看播放| 国产在线超清日本一本| 国产成人一区二区三区影院动漫| 夜夜爽77777妓女免费看| 亚洲成人资源在线观看| 国产三级无码内射在线看| 亚洲国产高清av网站| 蜜臀av日韩精品一区二区| 精品国产亚洲一区二区三区| 性欧美vr高清极品|