亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

什么是XML

發布時間:2020-07-20 10:57:17 來源:億速云 閱讀:165 作者:Leah 欄目:編程語言

這期內容當中小編將會給大家帶來有關什么是XML,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

  1、XML : extensible markup language 可擴展標記語言 version="1.0"

  • 可擴展:所有的標簽都是自定義的

  • 功能:數據存儲

    • 配置文件

    • 數據傳輸

  • html 與 xml 區別

    • HTML語法松散,xml語法嚴格

    • html做頁面展示,xml做數據存儲

    • Html所有標簽都是預定義的,xml所有標簽都是自定義的

2、xml語法:

  • 文檔聲明

    • version 版本號 固定值1.0

    • encoding 指定文檔的碼表 默認值為iso-8859-1

    • standalone 指定文檔是否獨立 yes 或 no

    • 必須寫在xml文檔的第一行

    • 寫法:<?xml version = "1.0"?>

    • 屬性

  • 元素 xml文檔中的標簽

    • 元素名稱區分大小寫

    • 數字不能開頭

    • 文檔中必須有且只能有一個根元素

    • 元素需要正確閉合 <body></body> <br/>

    • 元素需要正確嵌套

    • 元素名稱要遵守

  • 文本

    • <!CDATA[數據內容]>

    • 轉義字符 &gt;

    • CDATA 里邊的數據會原樣顯示

  • 屬性

    • 屬性值必須用引號引起來,單雙引號都行

  • 注釋

    • <!-- -->

  • 處理指令:現在基本不用

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

3、XML約束

  • 約束就是xml的書寫規則

  • 約束的分類:

    • 導入xsd約束文檔

    • 編寫根標簽

    • 引入實例名稱空間 xmlns:xsi="www.w3.org/2001/XMLSchema-instance"

    • 引入名稱空間 xsi:schemaLocation="www.itcast.cn/xml student.xsd"

    • 引入默認的名稱空間

    • student.xsd

    • student.xml

    • <?xml version="1.0"?>
      <xsd:schema xmlns="www.itheima.cn/xml"
              xmlns:xsd="www.w3.org/2001/XMLSchema"
              targetNamespace="www.itheima.cn/xml" elementFormDefault="qualified">
          <xsd:element name="students" type="studentsType"/>
          <xsd:complexType name="studentsType">
              <xsd:sequence>
                  <xsd:element name="student" type="studentType" minOccurs="0" maxOccurs="unbounded"/>
              </xsd:sequence>
          </xsd:complexType>
          <xsd:complexType name="studentType">
              <xsd:sequence>
                  <xsd:element name="name" type="xsd:string"/>
                  <xsd:element name="age" type="ageType" />
                  <xsd:element name="sex" type="sexType" />
              </xsd:sequence>
              <xsd:attribute name="number" type="numberType" use="required"/>
          </xsd:complexType>
          <xsd:simpleType name="sexType">
              <xsd:restriction base="xsd:string">
                  <xsd:enumeration value="male"/>
                  <xsd:enumeration value="female"/>
              </xsd:restriction>
          </xsd:simpleType>
          <xsd:simpleType name="ageType">
              <xsd:restriction base="xsd:integer">
                  <xsd:minInclusive value="0"/>
                  <xsd:maxInclusive value="256"/>
              </xsd:restriction>
          </xsd:simpleType>
          <xsd:simpleType name="numberType">
              <xsd:restriction base="xsd:string">
                  <xsd:pattern value="itheima_\d{4}"/>
              </xsd:restriction>
          </xsd:simpleType>
      </xsd:schema>
      <?xml version="1.0" encoding="UTF-8" ?>
    • <!--

    • 1、編寫根標簽

    • 2、引入實例名稱空間 xmlns:xsi="www.w3.org/2001/XMLSchema-instance"

    • 3、引入名稱空間 xsi:schemaLocation="www.itcast.cn/xml student.xsd"

    • 4、引入默認的名稱空間

    • -->

    • <students
          xmlns="www.itheima.cn/xml"
          xsi:schemaLocation="www.itheima.cn/xml student.xsd"
          xmlns:xsi="www.w3.org/2001/XMLSchema-instance"
      >
          <student number="itheima_1001">
              <name>asfd</name>
              <age>12</age>
              <sex>male</sex>
          </student>
      </students>
      <students
          xmlns:itheima="www.itheima.cn/xml"
          xsi:schemaLocation="www.itheima.cn/xml student.xsd"
          xmlns:xsi="www.w3.org/2001/XMLSchema-instance"
      >
          <itheima:student number="itheima_1001">
              <itheima:name>asfd</itheima:name>
              <itheima:age>12</itheima:age>
              <theima:sex>male</itheima:sex>
          </itheima:student>
      </itheima:students>
    • 內部dtd 在xml內部定義dtd

    • 外部dtd 在外部文件中定義dtd

    • Student.dtd

    • student.xml

    • 本地dtd文件 <!DOCTYPE students SYSTEM "student.dtd">

    • 網絡dtd文件 <!DOCTYPE students PUBLIC "名稱空間" “student.dtd”>

    • <!ELEMENT students (student*) >
      <!ELEMENT student (name,age,sex)>
      <!ELEMENT name (#PCDATA)>
      <!ELEMENT age (#PCDATA)>
      <!ELEMENT sex (#PCDATA)>
      <!ATTLIST student number ID #REQUIRED> 唯一的,必須的
      <?xml version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE students SYSTEM  "student.dtd">
      <students>
          <student number="s0001" >
              <name>zs</name>
              <age>abc</age>
              <sex>yao</sex>
          </student>
      </students>
    • dtd  約束不嚴謹

    • schema

4、XML解析

  • 解析XML可以做:

    • 如果xml作為配置文件:讀取

    • 如果xml作為傳輸文件:寫、讀

  • XML解析思想:

    • 優點:不占內存,速度快

    • 缺點:只能讀取,不能回寫

    • 優點:因為在內存中會形成dom樹,可以對dom樹進行增刪改查

    • 缺點:dom樹非常占內存,解析速度慢

    • Document Element Text Attribute Comment

    • DOM:將文檔加載到內存,形成一棵dom樹(document對象),將文檔的各個組成部分封裝為一些對象

    • SAX:逐行讀取,基于事件驅動

  • xml常用的解析器

    • 定義了一種規則

    • 使用方法

    • 使用步驟

    • XPath:

    • public classTestXPath3 {
            @Test
            publicvoidtest()throwsException{
                  SAXReaderread= new SAXReader();
                  Documentdocument= read.read("src/Dom4jTest.xml");
                  Listnodes= document.selectNodes("/bookstore//book/title");
                  for(inti= 0;i< nodes.size();i++) {
                        Nodenode= (Node)nodes.get(i);
                        System.out.println(node.getText());
                  }
            }
      }
    • selectSingleNode()

    • selectNodes()

    • 注意:要導包 jaxen...jar

    • 創建解析器 SAXReader reader = new SAXReader()

    • 解析xml 獲得document對象 Document document = reader.read(url)

    • //    nodename 選取此節點。

    • //    /     從根節點選取。

    • //    //     從匹配選擇的當前節點選擇文檔中的節點,而不考慮它們的位置。

    • //    ..     選取當前節點的父節點。

    • //    @     選取屬性。

    • //      [@屬性名]    屬性過濾

    • //      [標簽名]     子元素過濾

    •      @Test

           //遍歷所有元素節點

    •  publicvoidtest2()throwsException{
                  //創建一個xml解析對象
                  SAXReaderreader= new SAXReader();
                  //把xml文檔加載到document對象中
                  Documentdocument= reader.read("src/Book.xml");
                  Elementroot= document.getRootElement();
                  treeWalk(root);
            }
            
            privatevoidtreeWalk(Elementele){
                  //輸出當前節點的名字
                  System.out.println(ele.getName());
                  //ele.nodeCount()得到當前節點的所有子節點的數量
                  for(inti= 0;i<ele.nodeCount();i++){
                        //取出下標為i的節點
                        Nodenode= ele.node(i);
                        //判斷當前節點是否為標簽
                        if(nodeinstanceofElement){
                              //把node強轉為標簽(Element)
                              treeWalk((Element)node);
                        }
                  }
            }
      }
    • public classTestDom4j {
            @Test
            publicvoidtest1()throwsException{
                  //創建一個xml解析對象
                  SAXReaderreader= new SAXReader();
                  //把xml文檔加載到document對象中
                  Documentdocument= reader.read("src/Book.xml");
                  Elementroot= document.getRootElement();
      //          Element bookNode = root.element("書");
      //          System.out.println(bookNode.getName());
                  //得到當前節點所有的子節點
                  Listlist= root.elements();
                  //得到第二本書對象
                  ElementsecondBook= (Element)list.get(1);
                  //得到當前節點的文本內容
                  Stringname= secondBook.element("書名").getText();
                  System.out.println(name);
            }
    • 導入jar包 dom4j.jar

    • 創建解析器

    • 解析xml 獲得document對象

    • SAXReader reader = new SAXReader()

    • Document document = reader.read(url)

    • JAXP sun公司提供的解析 支持dom和sax

    • JDOM

    • DOM4J dom for java民間方式,但是是事實方式,非常好,支持dom

    • 解析xml

    • XPATH 專門用于查詢

上述就是小編為大家分享的什么是XML了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

xml
AI

虹口区| 浦城县| 洛宁县| 古田县| 西盟| 望奎县| 泰和县| 平塘县| 都兰县| 湟中县| 于田县| 曲松县| 忻城县| 厦门市| 张家港市| 桓台县| 福建省| 吴旗县| 永平县| 武平县| 江口县| 乌兰浩特市| 石河子市| 兴城市| 北票市| 乐山市| 工布江达县| 河南省| 明光市| 平远县| 锡林浩特市| 余姚市| 本溪市| 水富县| 凤山县| 洛宁县| 霍州市| 简阳市| 宁晋县| 荥阳市| 昭觉县|