中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

廣州專(zhuān)業(yè)網(wǎng)站制作種子搜索神器網(wǎng)頁(yè)版

廣州專(zhuān)業(yè)網(wǎng)站制作,種子搜索神器網(wǎng)頁(yè)版,網(wǎng)站加盟城市分站,郵箱發(fā)網(wǎng)站建設(shè)主題怎么寫(xiě)目錄 一、XML(可拓展標(biāo)記語(yǔ)言) 1.學(xué)習(xí)網(wǎng)站: 2.作用 3.XML標(biāo)簽 4.XML語(yǔ)法 5.解析XML (1)常見(jiàn)解析思想DOM 6.常見(jiàn)的解析工具 7.DOM4j的使用 8.文檔約束 (1)概述 (2&#xf…

目錄

一、XML(可拓展標(biāo)記語(yǔ)言)

1.學(xué)習(xí)網(wǎng)站:

2.作用

3.XML標(biāo)簽

4.XML語(yǔ)法

5.解析XML

(1)常見(jiàn)解析思想DOM

6.常見(jiàn)的解析工具

7.DOM4j的使用

8.文檔約束

(1)概述

(2)分類(lèi)

(3)DTD約束

(4)引入DTD約束

(5)DTD語(yǔ)法

①定義元素

②定義屬性

(6)schema約束

①定義元素

②定義屬性

(7)引入schema約束

(8)schema和DTD約束的區(qū)別


一、XML(可拓展標(biāo)記語(yǔ)言)

1.學(xué)習(xí)網(wǎng)站:

https://www.w3schoo1.com.cn

  • 標(biāo)記語(yǔ)言:通過(guò)標(biāo)簽來(lái)描述數(shù)據(jù)的一門(mén)語(yǔ)言(標(biāo)簽有時(shí)我們也將其稱(chēng)之為元素)

  • 可擴(kuò)展:標(biāo)簽的名字是可以自定義的

2.作用

  • 用于進(jìn)行存儲(chǔ)數(shù)據(jù)和傳輸數(shù)據(jù)

  • 作為軟件的配置文件

3.XML標(biāo)簽

  • 標(biāo)簽由一對(duì)尖括號(hào)和合法標(biāo)識(shí)符組成 < user >

  • 標(biāo)簽必須成對(duì)出現(xiàn)< user >< user/>

  • 特殊的標(biāo)簽可以不成對(duì),但是必須有結(jié)束標(biāo)記< user/ >

  • 標(biāo)簽中可以定義屬性,屬性和標(biāo)簽名空格隔開(kāi)屬性值必須用引號(hào)(單/雙)引起來(lái)< user id = "100"/>

  • 標(biāo)簽需要正確的嵌套

4.XML語(yǔ)法

  • 后綴名為.xml

  • 文檔聲明必須是第一行第一列

<?xmlversion="1.0”encoding="UTF-8" standalone= “yes”?>
其中
version屬性必須存在
encoding屬性不是必須的,作用:打開(kāi)當(dāng)前xml文件的時(shí)候應(yīng)該是使用什么字符編碼表(默認(rèn)都是UTF-8)
standalone屬性不是必須的,作用:描述XML文件是否依賴(lài)其他的xml文件,取值為yes/no
  • 必須存在根標(biāo)簽

  • XML文件中可以定義注釋信息

  • XML文件中可以存在以下特殊字符

&lt;-----------------小于
&gt;-----------------大于
&amp;----------------和號(hào)(&)
&apos;---------------單引號(hào)
&quot;---------------引號(hào)
  • XML可以存在CDATA區(qū)

<![CDATA[ ...內(nèi)容...]]>

5.解析XML

(1)常見(jiàn)解析思想DOM
  • DOM(DocumentObject Model)文檔對(duì)象模型:

就是把文檔的各個(gè)組成部分看做成對(duì)應(yīng)的對(duì)象,會(huì)把xmI文件全部加載到內(nèi)存在內(nèi)存中形成一個(gè)樹(shù)形結(jié)構(gòu),再獲取對(duì)應(yīng)的值

其中DOM對(duì)象主要有以下部分

  • Document對(duì)象:整個(gè)xml文檔

  • Element對(duì)象:所有標(biāo)簽

  • Attribute對(duì)象:所有屬性

  • Text對(duì)象:所有文本內(nèi)容

其中Element,Attribute,Text有一個(gè)共同的父類(lèi):Node對(duì)象

6.常見(jiàn)的解析工具

  • JAXP:SUN公司提供的一套XML的解析的API

  • JDOM:開(kāi)源組織提供了一套XML的解析的API-jdom

  • DOM4J:開(kāi)源組織提供了一套XML的解析的API-dom4j

  • pull :主要應(yīng)用在A(yíng)ndroid手機(jī)端解析XML

7.DOM4j的使用

首先下載jar包

xml文件

<?xml version="1.0" encoding="utf-8" ?>
<books><book id="1"><name>語(yǔ)文</name><versions>人教版</versions></book><book id="2"><name>數(shù)學(xué)</name><versions>人教版</versions></book><book id="3"><name>數(shù)學(xué)</name><versions>蘇教版</versions></book><user id="1"><name>小明</name><studentID>1235354</studentID></user>
</books>

需求:

  • 解析這個(gè)xmI文件

  • 將解析到的Book標(biāo)簽數(shù)據(jù)封裝到Book對(duì)象中并將其存儲(chǔ)到ArrayList集合中

  • 遍歷集合

解析類(lèi):

public class Analysis {
?public Document parseUrl(String url) throws DocumentException {SAXReader reader = new SAXReader();return reader.read(url);}public Document parseUrl(File file) throws DocumentException {SAXReader reader = new SAXReader();return reader.read(file);}
?
}

Book類(lèi)

public class Book {private String name;private String version;private Long id;
?public Book() {}
?public Book(String name, String version, Long id) {this.name = name;this.version = version;this.id = id;}
?public String getName() {return name;}
?public void setName(String name) {this.name = name;}
?public String getVersion() {return version;}
?public void setVersion(String version) {this.version = version;}
?public Long getId() {return id;}
?public void setId(Long id) {this.id = id;}
?@Overridepublic String toString() {return "Book{" +"name='" + name + '\'' +", version='" + version + '\'' +", id=" + id +'}';}
}

測(cè)試類(lèi)

public class Application {public static void main(String[] args) throws ?DocumentException {
?File file = new File("reflection\\src\\xml\\bookstores.xml");Analysis analysis = new Analysis();Document document = analysis.parseUrl(file);
?//獲取根標(biāo)簽Element rootElement = document.getRootElement();//通過(guò)根標(biāo)簽獲取book標(biāo)簽//無(wú)參elements()獲取所有子標(biāo)簽List<Element> elements = rootElement.elements();System.out.println(elements.size());elements.forEach(book -> {System.out.println(book.getName());});
?//有參elements(標(biāo)簽名)可以獲取所有的指定子標(biāo)簽List<Element> books = rootElement.elements("book");System.out.println(books.size());
?books.forEach(book -> {System.out.println("=====================================");//獲取屬性對(duì)應(yīng)的屬性值System.out.println(book.attribute("id").getValue());//獲取該標(biāo)簽下的子標(biāo)簽book.elements("name").forEach(name -> {//獲取標(biāo)簽體的內(nèi)容System.out.println(name.getText());});
?book.elements("version").forEach(v -> {//獲取標(biāo)簽體的內(nèi)容System.out.println(v.getText());});});System.out.println("------------------------------------");
?//準(zhǔn)備封裝ArrayList<Book> bookArrayList = new ArrayList<>();books.forEach(book -> {Book book1 = new Book(book.element("name").getText(),book.element("version").getText(),Long.valueOf(book.attribute("id").getValue()));System.out.println(book1);bookArrayList.add(book1);});//最后檢查"System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++");bookArrayList.forEach(book -> System.out.println(book.toString()));
?
?
?}
}

8.文檔約束

(1)概述

用來(lái)限定xml文件中可使用的標(biāo)簽以及屬性

(2)分類(lèi)
  • DTD

  • schema

(3)DTD約束
  • 創(chuàng)建一個(gè)文件,后綴名為.dtd

  • 看xml文件中使用了哪些元素(<!ELEMENT>可以定義元素)

  • 判斷元素是簡(jiǎn)單元素還是復(fù)雜元素

    • 簡(jiǎn)單元素:沒(méi)有子元素

    • 復(fù)雜元素:有子元素的

xml文件:下面的約束文檔的xml內(nèi)容

<?xml version="1.0" encoding="utf-8" ?>
<books><book id="1"><name>語(yǔ)文</name><versions>人教版</versions></book><book id="2"><name>數(shù)學(xué)</name><versions>人教版</versions></book><book id="3"><name>數(shù)學(xué)</name><versions>蘇教版</versions></book>
</books>

需要掌握:

  • 能在xml文件中引入dtd約束文檔

  • 能夠簡(jiǎn)單閱讀約束文檔

  • 能根據(jù)約束文檔寫(xiě)xml文件

(4)引入DTD約束

方式一:引入本地dtd

<?xml version="1.0" encoding="utf-8" ?>
<!--在xml文件中的第二行寫(xiě)入 <!DOCTYPE 根標(biāo)簽名字 SYSTEM(表示引入本地DTD) ‘DTD文件路徑’>-->
<!DOCTYPE books SYSTEM 'restrain.dtd'>

方式二:在xml文件內(nèi)部引入

<?xml version="1.0" encoding="utf-8" ?>
<!--在xml文件中的第二行寫(xiě)入 <!DOCTYPE 根標(biāo)簽名字 [](表示內(nèi)部引入dtd,[]內(nèi)寫(xiě)約束內(nèi)容)>-->
<!DOCTYPE books [] >

方式三:引入網(wǎng)絡(luò)dtd

<?xml version="1.0" encoding="utf-8" ?>
<!--在xml文件中的第二行寫(xiě)入 <!DOCTYPE 根標(biāo)簽名字 PUBLIC(表示引入網(wǎng)絡(luò)DTD) “dtd文件名” “dtd文檔的url”>-->
<!DOCTYPE books PUBLIC “dtd文件名” “dtd文檔的url”>

(5)DTD語(yǔ)法
①定義元素
<!ELEMENT元素名 元素類(lèi)型>
  • 簡(jiǎn)單元素

    • EMPTY:表示標(biāo)簽體為空

    • ANY:表示標(biāo)簽體可以為空也可以不為空

    • PCDATA:表示該元素的內(nèi)容部分為字符串

  • 復(fù)雜元素

    • 直接寫(xiě)子元素名稱(chēng)。

    • 多個(gè)子元素可以使用”,“或者 ”|" 隔開(kāi);

      • ” , ":表示定義子元素的順序

      • ”|”: 表示子元素只能出現(xiàn)任意一個(gè)

        • "?“:零次或一次

        • ” + ":一次或多次

        • " * ":零次或多次;

        • 如果不寫(xiě)則表示出現(xiàn)一次

②定義屬性
<!ATTLIST 元素名稱(chēng) 屬性名稱(chēng) 屬性的類(lèi)型 屬性的約束>
  • 屬性的類(lèi)型

    • CDATA類(lèi)型:普通的字符串

  • 屬性的約束:

    • #REQUIRED:屬性是必須的

    • #IMPLIED:屬性不是必需的

    • #FIXED value:屬性值是固定的value值

DTD約束文件

<!--復(fù)雜元素-->
<!ELEMENT books (book+)>
<!ELEMENT book (name,version)>
<!--簡(jiǎn)單元素-->
<!ELEMENT name (#PCDATA)>
<!ELEMENT version (#PCDATA)>
<!--定義屬性-->
<!ATTLIST book id #PCDATA #IMPLIED>

(6)schema約束
①定義元素
  • 創(chuàng)建一個(gè)文件,后綴名為.xsd

  • 定義文檔聲明

  • schema文件的根標(biāo)簽為:< schema>

  • 在< schema>中定義屬性:xmIns=XML Schema

  • 在根標(biāo)簽中定義屬性:targetNamespace =唯一的url地址,用來(lái)指定當(dāng)前這個(gè)schema文件的名稱(chēng)空間

  • 在根標(biāo)簽定義屬性:elementFormDefault="qualified,表示當(dāng)前schema文件是一個(gè)質(zhì)量良好的文件

  • 通過(guò)element定義元素

  • 判斷當(dāng)前元素是簡(jiǎn)單元素還是復(fù)雜元素

②定義屬性
                屬性名 ? ?  屬性類(lèi)型    ? 屬性的約束【required(必須的),optional(可選的)】
<attribute name="id" type="string"use="required"></attribute>

?(7)引入schema約束
  • 在根標(biāo)簽定義屬性:xmIns="http://www.w3.org/2001/XMLSchema-instance

  • 通過(guò)xmIns引入約束文件的名稱(chēng)空間

  • 給某一個(gè)xmins屬性添加一個(gè)標(biāo)識(shí),用于區(qū)分不同的名稱(chēng)空間,格式為:xmins:標(biāo)識(shí)=“名稱(chēng)空間地址”,標(biāo)識(shí)可以是任意的,但是一般取值都是xsi

  • 通過(guò)xsi:schemaLocation指定名稱(chēng)空間所對(duì)應(yīng)的約束文件,路徑格式為:父 si:schemaLocation ="名稱(chēng)空間url 文件路徑“

<books xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="www.book_schema.cn"xsi:shemaLocation="www.book_shema.cn book_shema.xad"
>

根據(jù)上面xml寫(xiě)一個(gè)xsd文件

<?xml version="1.0" encoding="UTF-8" ?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"targetNamespace="www.book_schema.cn"elementFormDefault="qualified">
?
<!-- ?  element name = "根標(biāo)簽名"--><element name="books">
<!-- ? ? ?  complexType表示當(dāng)前標(biāo)簽是復(fù)雜的元素--><complexType><sequence>
<!-- ? ? ? ? ? ? ? 定義book復(fù)雜元素,maxOccurs:該標(biāo)簽最多出現(xiàn)的次數(shù),unbounded是無(wú)限制--><element name="book" maxOccurs="unbounded"><complexType><sequence>
<!-- ? ? ? ? ? ? ? ? ? ? ? ? ?  定義簡(jiǎn)單元素--><element name="name" type="string"/><element name="version" type="string"/></sequence><attribute name="id" type="string" use="required"></attribute></complexType>
?</element>
?</sequence>
?</complexType></element>
?
</schema>
?
(8)schema和DTD約束的區(qū)別
  • schema約束文件也是一個(gè)xml文件,符合x(chóng)m的語(yǔ)法,這個(gè)文件的后綴名.xsd

  • 一個(gè)xml中可以引用多個(gè)schema約束文件,多個(gè)schema使用名稱(chēng)空間區(qū)分(名稱(chēng)空間類(lèi)似于java包名)

  • dtd里面元素類(lèi)型的取值比較單一常見(jiàn)的是PCDATA類(lèi)型,但是在schema里面可以支持很多個(gè)數(shù)據(jù)類(lèi)型

  • schema語(yǔ)法更加的復(fù)雜

http://m.risenshineclean.com/news/64823.html

相關(guān)文章:

  • 平面設(shè)計(jì)短期培訓(xùn)班seo站長(zhǎng)綜合查詢(xún)工具
  • wordpress將404跳轉(zhuǎn)主頁(yè)結(jié)構(gòu)優(yōu)化設(shè)計(jì)
  • 成都網(wǎng)站建設(shè)優(yōu)秀公司網(wǎng)絡(luò)推廣渠道和方法
  • 做網(wǎng)站項(xiàng)目的心得小紅書(shū)筆記關(guān)鍵詞排名優(yōu)化
  • 網(wǎng)站備案要多長(zhǎng)時(shí)間廣告精準(zhǔn)推廣平臺(tái)
  • 企業(yè)網(wǎng)站管理系統(tǒng)安裝教程重慶森林講的什么內(nèi)容
  • 如何騰訊云二級(jí)域名做網(wǎng)站北京中文seo
  • 附近短期電腦培訓(xùn)班深圳關(guān)鍵詞優(yōu)化公司哪家好
  • thinkphp做網(wǎng)站好嗎免費(fèi)網(wǎng)站注冊(cè)免費(fèi)創(chuàng)建網(wǎng)站
  • 一般給公司做網(wǎng)站用什么軟件奶茶推廣軟文200字
  • 做曖網(wǎng)站seo排名優(yōu)化教學(xué)
  • 如何做網(wǎng)站靜態(tài)頁(yè)面佛山網(wǎng)站設(shè)計(jì)實(shí)力樂(lè)云seo
  • 做網(wǎng)站瀏覽器2022重大時(shí)政熱點(diǎn)事件簡(jiǎn)短
  • 如何建設(shè)網(wǎng)站效果好近期10大新聞事件
  • 安徽教育機(jī)構(gòu)網(wǎng)站建設(shè)在線(xiàn)網(wǎng)頁(yè)編輯平臺(tái)
  • 網(wǎng)頁(yè)框架與布局網(wǎng)站如何做關(guān)鍵詞優(yōu)化
  • 網(wǎng)站建設(shè)及經(jīng)營(yíng)應(yīng)解決好的問(wèn)題seo網(wǎng)站診斷文檔案例
  • 昆明網(wǎng)站建設(shè)電話(huà)seo導(dǎo)航站
  • 做房地產(chǎn)咨詢(xún)網(wǎng)站怎么贏(yíng)利百度地圖人工客服電話(huà)
  • .net網(wǎng)站開(kāi)發(fā)程序員青島seo服務(wù)公司
  • 公司網(wǎng)站公眾號(hào)維護(hù)怎么做網(wǎng)站聯(lián)盟推廣
  • 上海做網(wǎng)站優(yōu)化價(jià)格重慶seo排名電話(huà)
  • 做網(wǎng)站上海做一個(gè)簡(jiǎn)單的網(wǎng)站需要多少錢(qián)
  • 高端的環(huán)保行業(yè)網(wǎng)站開(kāi)發(fā)歌爾股份砍單
  • 東莞做營(yíng)銷(xiāo)型網(wǎng)站的百度推廣開(kāi)戶(hù)費(fèi)用標(biāo)準(zhǔn)
  • 區(qū)域知識(shí)產(chǎn)權(quán)貿(mào)易中心seo助力網(wǎng)站轉(zhuǎn)化率提升
  • 網(wǎng)站如何做sem優(yōu)化seo搜索引擎優(yōu)化工程師招聘
  • 織夢(mèng)網(wǎng)站識(shí)別合肥seo管理
  • 020網(wǎng)站設(shè)計(jì)互聯(lián)網(wǎng)營(yíng)銷(xiāo)培訓(xùn)班
  • 做網(wǎng)站的軟件著作權(quán)安卓手機(jī)優(yōu)化