溫馨提示×

溫馨提示×

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

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

XML有哪些作用

發(fā)布時間:2021-09-17 14:12:06 來源:億速云 閱讀:149 作者:小新 欄目:編程語言

小編給大家分享一下XML有哪些作用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

概述

XML:Extensible Markup Language(可擴(kuò)展標(biāo)記語言)的縮寫,是用來定義其它語言的一種元語言,其前身是SGML(Standard Generalized 
Markup Language,標(biāo)準(zhǔn)通用標(biāo)記語言)。它沒有標(biāo)簽集(tag set),也沒有語法規(guī)則(grammatical rule),但是它有句法規(guī)則(syntax rule)。
任何XML文檔對任何類型的應(yīng)用以及正確的解析都必須是良構(gòu)的(well-formed),即每一個打開的標(biāo)簽都必須有匹配的結(jié)束標(biāo)簽,不得
含有次序顛倒的標(biāo)簽,并且在語句構(gòu)成上應(yīng)符合技術(shù)規(guī)范的要求。XML文檔可以是有效的(valid),但并非一定要求有效。所謂有效文檔是指其符合其文檔
類型定義(DTD)的文檔。如果一個文檔符合一個模式(schema)的規(guī)定,那么這個文檔是"模式有效的(schema valid)"。

XML 是一種標(biāo)記語言,很類似 HTML ,XML 的設(shè)計宗旨是傳輸數(shù)據(jù),而非顯示數(shù)據(jù) ,XML 標(biāo)簽沒有被預(yù)定義。您需要自行定義標(biāo)簽。 XML 被設(shè)計為具有自我描述性。 XML 是 W3C 的推薦標(biāo)準(zhǔn)

XML 用于創(chuàng)建新的 Internet 語言

很多新的 Internet 語言是通過 XML 創(chuàng)建的:

其中的例子包括:

XHTML - 最新的 HTML 版本 ,WSDL - 用于描述可用的 web service ,WAP 和 WML - 用于手持設(shè)備的標(biāo)記語言 ,RSS - 用于 RSS feed 的語言 ,

RDF 和 OWL - 用于描述資源和本體 ,SMIL - 用于描述針針對 web 的多媒體

下面來看一個常用案例:

<bookstore>
<book category="COOKING">
  <title lang="en">Everyday Italian</title> 
  <author>Giada De Laurentiis</author> 
  <year>2005</year> 
  <price>30.00</price> 
</book>
<book category="CHILDREN">
  <title lang="en">Harry Potter</title> 
  <author>J K. Rowling</author> 
  <year>2005</year> 
  <price>29.99</price> 
</book>
<book category="WEB">
  <title lang="en">Learning XML</title> 
  <author>Erik T. Ray</author> 
  <year>2003</year> 
  <price>39.95</price> 
</book>
</bookstore>

可以用如下圖來解釋:

XML有哪些作用

實體引用

在 XML 中,一些字符擁有特殊的意義。

如果你把字符 "<" 放在 XML 元素中,會發(fā)生錯誤,這是因為解析器會把它當(dāng)作新元素的開始。

這樣會產(chǎn)生 XML 錯誤:

<message>if salary < 1000 then</message>

為了避免這個錯誤,請用實體引用來代替 "<" 字符:

<message>if salary &lt; 1000 then</message>

在 XML 中,有 5 個預(yù)定義的實體引用:

XML有哪些作用

XML 命名規(guī)則

XML 元素必須遵循以下命名規(guī)則:

  • 名稱可以含字母、數(shù)字以及其他的字符

  • 名稱不能以數(shù)字或者標(biāo)點符號開始

  • 名稱不能以字符 “xml”(或者 XML、Xml)開始

  • 名稱不能包含空格

可使用任何名稱,沒有保留的字詞。

什么是 XMLHttpRequest 對象?

XMLHttpRequest 對象用于在后臺與服務(wù)器交換數(shù)據(jù)。

XMLHttpRequest 對象是開發(fā)者的夢想,因為您能夠:

  • 在不重新加載頁面的情況下更新網(wǎng)頁

  • 在頁面已加載后從服務(wù)器請求數(shù)據(jù)

  • 在頁面已加載后從服務(wù)器接收數(shù)據(jù)

  • 在后臺向服務(wù)器發(fā)送數(shù)據(jù)

所有現(xiàn)代的瀏覽器都支持 XMLHttpRequest 對象。

創(chuàng)建 XMLHttpRequest 對象

所有現(xiàn)代瀏覽器 (IE7+、Firefox、Chrome、Safari 以及 Opera) 都內(nèi)建了 XMLHttpRequest 對象。

通過一行簡單的 JavaScript 代碼,我們就可以創(chuàng)建 XMLHttpRequest 對象。

創(chuàng)建 XMLHttpRequest 對象的語法:
xmlhttp=new XMLHttpRequest();
為什么使用 XML 編輯器?

當(dāng)今,XML 是非常重要的技術(shù),并且開發(fā)項目正在使用這些基于 XML 的技術(shù):

  • 用 XML Schema 定義 XML 的結(jié)構(gòu)和數(shù)據(jù)類型

  • 用 XSLT 來轉(zhuǎn)換 XML 數(shù)據(jù)

  • 用 SOAP 來交換應(yīng)用程序之間的 XML 數(shù)據(jù)

  • 用 WSDL 來描述網(wǎng)絡(luò)服務(wù)

  • 用 RDF 來描述網(wǎng)絡(luò)資源

  • 用 XPath 和 XQuery 來訪問 XML 數(shù)據(jù)

  • 用 SMIL 來定義圖形

XSLT

XSLT(eXtensible Stylesheet Language Transformation)是一種用來轉(zhuǎn)換XML文檔結(jié)構(gòu)的語言。

XSL的處理過程:

首先是根據(jù)XML文檔構(gòu)造源樹,然后根據(jù)XSL規(guī)則將源樹轉(zhuǎn)換為結(jié)果樹,生成結(jié)果樹后,對其進(jìn)行解釋,格式化為一種適合顯示、打印或是播放的格式。

XSLT和CSS的比較:

CSS

XSLT

使用簡單

使用復(fù)雜

不能排序、添加或刪除元素

可排序、添加或刪除元素

不能訪問文檔除元素外的其它信息

能訪問其它信息

使用內(nèi)存比較少

使用較多內(nèi)存和處理器能力

與XML語法不同

語法與XML相同

XPath基礎(chǔ)

XPath就是一種專門用來在XML文檔中定位和查找信息的語言,通過XPath可對XML文檔中的元素和屬性進(jìn)行遍歷,是高級XML應(yīng)用的基礎(chǔ) 。

XPath主要有四種數(shù)據(jù)類型:(1)節(jié)點集.(2)布爾類型.(3)字符串類型.(4)數(shù)值類型

在XPath中,可以將節(jié)點劃分為七種節(jié)點類型:(1)根節(jié)點(Root Node).(2)元素節(jié)點(Element Nodes).(3)文本節(jié)點(Text Nodes).(4)屬性節(jié)點(Attribute Nodes).(5)命名空間節(jié)點(Namespace Nodes).(6)處理指令節(jié)點(Processing Instruction Nodes).(7)注釋節(jié)點(Comment Nodes).

XPath節(jié)點關(guān)系:(1)父(parent).(2)子(children).(3)同胞(sibling).(4)先輩(ancestor).(5)后代(descendant).

XPath表達(dá)式

XPath將XML文檔看作由節(jié)點構(gòu)成的層次樹,通過編寫XPath表達(dá)式來定位樹中特定的節(jié)點

XPath路徑表達(dá)式:

表達(dá)式

描述

nodename

選取此節(jié)點的所有子節(jié)點

/

從根節(jié)點選取,絕對路徑,表示當(dāng)前文檔的根節(jié)點

//

從任意節(jié)點選取,相對路徑,表示當(dāng)前文檔所有的節(jié)點

.

選取當(dāng)前節(jié)點

..

選取當(dāng)前節(jié)點的父節(jié)點

@

選取屬性

例子

<?xml version="1.0" encoding="GB2312"?>
<bookstore>
    <book>
        <title lang="en">RESTful Web Services</title>
        <price>29.00</price>
    </book>
    <book>
        <title lang="zh">C#編程基礎(chǔ)</title>
        <price>46.00</price>
    </book>
</bookstore>

解析:

bookstore

選取 bookstore 元素的所有子節(jié)點

/bookstore

選取根節(jié)點bookstore元素

/bookstore/book/price

選取bookstore元素下所有book元素的所有price元素

/bookstore/book/*

選取/bookstore/book的所有子元素

bookstore/book

選取bookstore元素下所有的book子元素

//bookstore

選取文檔中所有的bookstore元素,無論它在什么層次

bookstore//book

選取在bookstore元素下所有的book元素,無論它們位于bookstore之下的什么位置

/bookstore/*/price

選取bookstore的子元素中,包含有price作為子元素的元素

//*

選取文件中的所有元素

//@lang

選取所有名為 lang 的屬性

謂語表達(dá)式:

路徑表達(dá)式

描述

/bookstore/book[last()]

選取屬于bookstore子元素的最后一個book元素

/bookstore/book[last()-1]

選取屬于bookstore子元素的倒數(shù)第二個book元素

/bookstore/book[position()<3]

選取前兩個屬于bookstore元素的子元素的book元素

//title[@lang]

選取所有擁有名為lang的屬性的title元素

//title[@lang="en"]

選取所有title元素,且這些元素?fù)碛兄禐?eng 的 lang 屬性

/bookstore/book[price>15.00]

選取所有bookstore元素的book元素,且其中的price元素的值須大于15.00

/bookstore/book[price>15.00]/title

選取所有bookstore元素中的book元素的title元素,且其中的price元素的值須大于15.00

//title[@*]

選取所有帶有屬性的 title 元素

如果需要選擇一個以上的路徑,可以在XPath表達(dá)式中使用“|”運(yùn)算符:

路徑表達(dá)式

描述

//book/title | //book/price

選取所有book元素的title和price元素

//title | //price

選取文檔中所有的title和price元素

/bookstore/book/title | //price

選取所有屬于bookstore元素的book元素的title元素,以及文檔中所有的price元素

XPath表達(dá)式的常用運(yùn)算符:

運(yùn)算符

描述

實例

|

計算兩個節(jié)點集

//book | //cd,返回所有帶有 book 和 cd 元素的節(jié)點集

+

加法

6 + 4,

-

減法

6 - 4

*

乘法

6 * 4

p

除法

8 p 4

=

等于

price=15

!=

不等于

price!=15

<

小于

price<15

<=

小于或等于

price<=15

>

大于

price>15

>=

大于或等于

price>=15

or

price=15 or price=35

and

price>15 or price<35

mod

計算除法的余數(shù)

5 mod 2

示例

private void button1_Click(object sender, EventArgs e)
          {
              XmlDocument doc = new XmlDocument();
              doc.Load(@"..\..\CD.xml");
  
              XmlElement root = null;
              root = doc.DocumentElement;
  
              XmlNodeList listNodes = null;
              listNodes = root.SelectNodes("/bookstore/book/price");
              foreach (XmlNode node in listNodes )
              {
                  richTextBox1.Text += node.InnerText + "\n";
              }
          }

結(jié)果:

29.00

46.00

以上是“XML有哪些作用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

xml
AI