XML 完全學習教程

什麼是 XML?

  • XML 指可擴展標記語言(EXtensible Markup Language)
  • XML 是一種標記語言,很類似 HTML
  • XML 的設計宗旨是傳輸數據,而非顯示數據
  • XML 標籤沒有被預定義。您需要自行定義標籤
  • XML 被設計爲具有自我描述性
  • XML 是 W3C 的推薦標準

XML 與 HTML 的主要差異

XML 不是 HTML 的替代。

XML 和 HTML 爲不同的目的而設計:

XML 被設計爲傳輸和存儲數據,其焦點是數據的內容。

HTML 被設計用來顯示數據,其焦點是數據的外觀。

HTML 旨在顯示信息,而 XML 旨在傳輸信息。

沒有任何行爲的 XML

XML 是不作爲的。

也許這有點難以理解,但是 XML 不會做任何事情。XML 被設計用來結構化、存儲以及傳輸信息。

下面是 John 寫給 George 的便籤,存儲爲 XML:

<note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>

這個標籤有標題以及留言。它也包含了發送者和接受者的信息。但是,這個 XML 文檔仍然沒有做任何事情。它僅僅是包裝在 XML 標籤中的純粹的信息。我們需要編寫軟件或者程序,才能傳送、接收和顯示出這個文檔。

XML 僅僅是純文本

XML 沒什麼特別的。它僅僅是純文本而已。有能力處理純文本的軟件都可以處理 XML。

不過,能夠讀懂 XML 的應用程序可以有針對性地處理 XML 的標籤。標籤的功能性意義依賴於應用程序的特性。

通過 XML 您可以發明自己的標籤

上例中的標籤沒有在任何 XML 標準中定義過(比如 <to> 和 <from>)。這些標籤是由文檔的創作者發明的。

這是因爲 XML 沒有預定義的標籤。

在 HTML 中使用的標籤(以及 HTML 的結構)是預定義的。HTML 文檔只使用在 HTML 標準中定義過的標籤(比如 <p> 、<h1> 等等)。

XML 允許創作者定義自己的標籤和自己的文檔結構。

XML 不是對 HTML 的替代

XML 是對 HTML 的補充。

XML 不是對 HTML 的替代,理解這一點很重要。在大多數 web 應用程序中,XML 用於傳輸數據,而 HTML 用於格式化並顯示數據。

對 XML 的最好的描述是:

XML 是獨立於軟件和硬件的信息傳輸工具。

XML 是 W3C 的推薦標準

可擴展標記語言 (XML) 於 1998 年 2 月 10 日成爲 W3C 的推薦標準。

XML 無所不在

當我們看到 XML 標準突飛猛進的開發進度,以及大批的軟件開發商採用這個標準的日新月異的速度時,真的是不禁感嘆這真是令人歎爲觀止。

XML 應用於 web 開發的許多方面,常用於簡化數據的存儲和共享。

XML 把數據從 HTML 分離

如果你需要在 HTML 文檔中顯示動態數據,那麼每當數據改變時將花費大量的時間來編輯 HTML。

通過 XML,數據能夠存儲在獨立的 XML 文件中。這樣你就可以專注於使用 HTML 進行佈局和顯示,並確保修改底層數據不再需要對 HTML 進行任何的改變。

通過使用幾行 JavaScript,你就可以讀取一個外部 XML 文件,然後更新 HTML 中的數據內容。

您將在稍後的章節學習更多這方面的內容。

XML 簡化數據共享

在真實的世界中,計算機系統和數據使用不兼容的格式來存儲數據。

XML 數據以純文本格式進行存儲,因此提供了一種獨立於軟件和硬件的數據存儲方法。

這讓創建不同應用程序可以共享的數據變得更加容易。

XML 簡化數據傳輸

通過 XML,可以在不兼容的系統之間輕鬆地交換數據。

對開發人員來說,其中一項最費時的挑戰一直是在因特網上的不兼容系統之間交換數據。

由於可以通過各種不兼容的應用程序來讀取數據,以 XML 交換數據降低了這種複雜性。

XML 簡化平臺的變更

升級到新的系統(硬件或軟件平臺),總是非常費時的。必須轉換大量的數據,不兼容的數據經常會丟失。

XML 數據以文本格式存儲。這使得 XML 在不損失數據的情況下,更容易擴展或升級到新的操作系統、新應用程序或新的瀏覽器。

XML 使您的數據更有用

由於 XML 獨立於硬件、軟件以及應用程序,XML 使您的數據更可用,也更有用。

不同的應用程序都能夠訪問您的數據,不僅僅在 HTML 頁中,也可以從 XML 數據源中進行訪問。

通過 XML,您的數據可供各種閱讀設備使用(手持的計算機、語音設備、新聞閱讀器等),還可以供盲人或其他殘障人士使用。

XML 用於創建新的 Internet 語言

很多新的 Internet 語言是通過 XML 創建的:

其中的例子包括:

  • XHTML - 最新的 HTML 版本
  • WSDL - 用於描述可用的 web service
  • WAP 和 WML - 用於手持設備的標記語言
  • RSS - 用於 RSS feed 的語言
  • RDF 和 OWL - 用於描述資源和本體
  • SMIL - 用於描述針針對 web 的多媒體

假如開發人員都是理性的

假如他們都是理性的,就讓未來的應用程序

一個 XML 文檔實例

XML 使用了簡單的具有自我描述性的語法:

<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>

第一行是 XML 聲明。它定義 XML 的版本 (1.0) 和所使用的編碼 (ISO-8859-1 = Latin-1/西歐字符集)。

下一行描述文檔的根元素(像在說:“本文檔是一個便籤”):

<note>

接下來 4 行描述根的 4 個子元素(to, from, heading 以及 body):

<to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body>

最後一行定義根元素的結尾:

</note>

從本例可以設想,該 XML 文檔包含了 John 給 George 的一張便籤。

XML 具有出色的自我描述性,你同意嗎?

XML 文檔形成一種樹結構

XML 文檔必須包含根元素。該元素是所有其他元素的父元素。

XML 文檔中的元素形成了一棵文檔樹。這棵樹從根部開始,並擴展到樹的最底端。

所有元素均可擁有子元素:

<root> <child> <subchild>.....</subchild> </child> </root>

父、子以及同胞等術語用於描述元素之間的關係。父元素擁有子元素。相同層級上的子元素成爲同胞(兄弟或姐妹)。

所有元素均可擁有文本內容和屬性(類似 HTML 中)。

實例

上圖表示下面的 XML 中的一本書:

<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>

例子中的根元素是 <bookstore>。文檔中的所有 <book> 元素都被包含在 <bookstore> 中。

<book> 元素有 4 個子元素:<title>、< author>、<year>、<price>。

XML 的語法規則很簡單,且很有邏輯。這些規則很容易學習,也很容易使用。

所有 XML 元素都須有關閉標籤

在 HTML,經常會看到沒有關閉標籤的元素:

<p>This is a paragraph <p>This is another paragraph

在 XML 中,省略關閉標籤是非法的。所有元素都必須有關閉標籤:

<p>This is a paragraph</p> <p>This is another paragraph</p>

註釋:您也許已經注意到 XML 聲明沒有關閉標籤。這不是錯誤。聲明不屬於XML本身的組成部分。它不是 XML 元素,也不需要關閉標籤。

XML 標籤對大小寫敏感

XML 元素使用 XML 標籤進行定義。

XML 標籤對大小寫敏感。在 XML 中,標籤 <Letter> 與標籤 <letter> 是不同的。

必須使用相同的大小寫來編寫打開標籤和關閉標籤:

<Message>這是錯誤的。</message> <message>這是正確的。</message>

註釋:打開標籤和關閉標籤通常被稱爲開始標籤和結束標籤。不論您喜歡哪種術語,它們的概念都是相同的。

XML 必須正確地嵌套

在 HTML 中,常會看到沒有正確嵌套的元素:

<b><i>This text is bold and italic</b></i>

在 XML 中,所有元素都必須彼此正確地嵌套:

<b><i>This text is bold and italic</i></b>

在上例中,正確嵌套的意思是:由於 <i> 元素是在 <b> 元素內打開的,那麼它必須在 <b> 元素內關閉。

XML 文檔必須有根元素

XML 文檔必須有一個元素是所有其他元素的父元素。該元素稱爲根元素

<root> <child> <subchild>.....</subchild> </child> </root>

XML 的屬性值須加引號

與 HTML 類似,XML 也可擁有屬性(名稱/值的對)。

在 XML 中,XML 的屬性值須加引號。請研究下面的兩個 XML 文檔。第一個是錯誤的,第二個是正確的:

<note date=08/08/2008> <to>George</to> <from>John</from> </note>
<note date="08/08/2008"> <to>George</to> <from>John</from> </note>

在第一個文檔中的錯誤是,note 元素中的 date 屬性沒有加引號。

實體引用

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

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

這樣會產生 XML 錯誤:

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

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

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

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

&lt; < 小於
&gt; > 大於
&amp; & 和號
&apos; ' 單引號
&quot; " 引號

註釋:在 XML 中,只有字符 "<" 和 "&" 確實是非法的。大於號是合法的,但是用實體引用來代替它是一個好習慣。

XML 中的註釋

在 XML 中編寫註釋的語法與 HTML 的語法很相似:

<!-- This is a comment -->

在 XML 中,空格會被保留

HTML 會把多個連續的空格字符裁減爲一個:

HTML: Hello my name is David. 輸出: Hello my name is David.

在 XML 中,文檔中的空格不會被刪節。

XML 以 LF 存儲換行

在 Windows 應用程序中,換行通常以一對字符來存儲:回車符 (CR) 和換行符 (LF)。這對字符與打字機設置新行的動作有相似之處。在 Unix 應用程序中,新行以 LF 字符存儲。而 Macintosh 應用程序使用 CR 來存儲新行。

XML 文檔包含 XML 元素。

什麼是 XML 元素?

XML 元素指的是從(且包括)開始標籤直到(且包括)結束標籤的部分。

元素可包含其他元素、文本或者兩者的混合物。元素也可以擁有屬性。

<bookstore> <book category="CHILDREN"> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="WEB"> <title>Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore>

在上例中,<bookstore> 和 <book> 都擁有元素內容,因爲它們包含了其他元素。<author> 只有文本內容,因爲它僅包含文本。

在上例中,只有 <book> 元素擁有屬性 (category="CHILDREN")。

XML 命名規則

XML 元素必須遵循以下命名規則:

  • 名稱可以含字母、數字以及其他的字符
  • 名稱不能以數字或者標點符號開始
  • 名稱不能以字符 “xml”(或者 XML、Xml)開始
  • 名稱不能包含空格

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

最佳命名習慣

使名稱具有描述性。使用下劃線的名稱也很不錯。

名稱應當比較簡短,比如:<book_title>,而不是:<the_title_of_the_book>。

避免 "-" 字符。如果您按照這樣的方式進行命名:"first-name",一些軟件會認爲你需要提取第一個單詞。

避免 "." 字符。如果您按照這樣的方式進行命名:"first.name",一些軟件會認爲 "name" 是對象 "first" 的屬性。

避免 ":" 字符。冒號會被轉換爲命名空間來使用(稍後介紹)。

XML 文檔經常有一個對應的數據庫,其中的字段會對應 XML 文檔中的元素。有一個實用的經驗,即使用數據庫的名稱規則來命名 XML 文檔中的元素。

非英語的字母比如 éòá 也是合法的 XML 元素名,不過需要留意當軟件開發商不支持這些字符時可能出現的問題。

XML 元素是可擴展的

XML 元素是可擴展,以攜帶更多的信息。

請看下面這個 XML 例子:

<note> <to>George</to> <from>John</from> <body>Don't forget the meeting!</body> </note>

讓我們設想一下,我們創建了一個應用程序,可將 <to>、<from> 以及 <body> 元素提取出來,併產生以下的輸出:

MESSAGE To: George From: John Don't forget the meeting!

想象一下,之後這個 XML 文檔作者又向這個文檔添加了一些額外的信息:

<note> <date>2008-08-08</date> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>

那麼這個應用程序會中斷或崩潰嗎?

不會。這個應用程序仍然可以找到 XML 文檔中的 <to>、<from> 以及 <body> 元素,併產生同樣的輸出。

XML 的優勢之一,就是可以經常在不中斷應用程序的情況進行擴展。

XML 元素可以在開始標籤中包含屬性,類似 HTML。

屬性 (Attribute) 提供關於元素的額外信息。

XML 屬性

從 HTML,你會回憶起這個:<img src="computer.gif">。"src" 屬性提供有關 <img> 元素的額外信息。

在 HTML 中(以及在 XML 中),屬性提供有關元素的額外信息:

<img src="computer.gif"> <a href="demo.asp">

屬性通常提供不屬於數據組成部分的信息。在下面的例子中,文件類型與數據無關,但是對需要處理這個元素的軟件來說卻很重要:

<file type="gif">computer.gif</file>

XML 屬性必須加引號

屬性值必須被引號包圍,不過單引號和雙引號均可使用。比如一個人的性別,person 標籤可以這樣寫:

<person sex="female">

或者這樣也可以:

<person sex='female'>

註釋:如果屬性值本身包含雙引號,那麼有必要使用單引號包圍它,就像這個例子:

<gangster name='George "Shotgun" Ziegler'>

或者可以使用實體引用:

<gangster name="George &quot;Shotgun&quot; Ziegler">

XML 元素 vs. 屬性

請看這些例子:

<person sex="female"> <firstname>Anna</firstname> <lastname>Smith</lastname> </person> <person> <sex>female</sex> <firstname>Anna</firstname> <lastname>Smith</lastname> </person>

在第一個例子中,sex 是一個屬性。在第二個例子中,sex 則是一個子元素。兩個例子均可提供相同的信息。

沒有什麼規矩可以告訴我們什麼時候該使用屬性,而什麼時候該使用子元素。我的經驗是在 HTML 中,屬性用起來很便利,但是在 XML 中,您應該儘量避免使用屬性。如果信息感覺起來很像數據,那麼請使用子元素吧。

我最喜歡的方式

下面的三個 XML 文檔包含完全相同的信息:

第一個例子中使用了 date 屬性:

<note date="08/08/2008"> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>

第二個例子中使用了 date 元素:

<note> <date>08/08/2008</date> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>

第三個例子中使用了擴展的 date 元素(這是我的最愛):

<note> <date> <day>08</day> <month>08</month> <year>2008</year> </date> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>

避免 XML 屬性?

因使用屬性而引起的一些問題:

  • 屬性無法包含多個值(子元素可以)
  • 屬性無法描述樹結構(子元素可以)
  • 屬性不易擴展(爲未來的變化)
  • 屬性難以閱讀和維護

請儘量使用元素來描述數據。而僅僅使用屬性來提供與數據無關的信息。

不要做這樣的蠢事(這不是 XML 應該被使用的方式):

<note day="08" month="08" year="2008" to="George" from="John" heading="Reminder" body="Don't forget the meeting!"> </note>

針對元數據的 XML 屬性

有時候會向元素分配 ID 引用。這些 ID 索引可用於標識 XML 元素,它起作用的方式與 HTML 中 ID 屬性是一樣的。這個例子向我們演示了這種情況:

<messages> <note id="501"> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note> <note id="502"> <to>John</to> <from>George</from> <heading>Re: Reminder</heading> <body>I will not</body> </note> </messages>

上面的 ID 僅僅是一個標識符,用於標識不同的便籤。它並不是便籤數據的組成部分。

在此我們極力向您傳遞的理念是:元數據(有關數據的數據)應當存儲爲屬性,而數據本身應當存儲爲元素。

擁有正確語法的 XML 被稱爲“形式良好”的 XML。

通過某個 DTD 進行了驗證的 XML 是“合法”的 XML。

形式良好的 XML 文檔

一個"形式良好"的 XML 文檔擁有正確的語法。

一個"形式良好"的 XML 文檔會遵守前幾章介紹過的 XML 語法規則:

  • XML 文檔必須有根元素
  • XML 文檔必須有關閉標籤
  • XML 標籤對大小寫敏感
  • XML 元素必須被正確的嵌套
  • XML 屬性必須加引號
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>

驗證 XML 文檔

一個合法的 XML 文檔是"形式良好"的 XML 文檔,同樣遵守文檔類型定義 (DTD) 的語法規則:

<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE note SYSTEM "Note.dtd"> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>

在上例中,DOCTYPE 聲明是對外部 DTD 文件的引用。下面的段落展示了這個文件的內容。

XML DTD

DTD 的作用是定義 XML 文檔的結構。它使用一系列合法的元素來定義文檔結構:

<!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]>

 

XML Schema

W3C 支持一種基於 XML 的 DTD 代替者,它名爲 XML Schema:

<xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>

一個通用的驗證器

爲了幫助您檢查 XML 文件的語法,我們創建了這個工具,以便您對任何 XML 文件進行語法檢查。

請看下一節。

XML 錯誤會終止您的程序

XML 文檔中的錯誤會終止你的 XML 程序。

W3C 的 XML 規範聲明:如果 XML 文檔存在錯誤,那麼程序就不應當繼續處理這個文檔。理由是,XML 軟件應當輕巧,快速,具有良好的兼容性。

如果使用 HTML,創建包含大量錯誤的文檔是有可能的(比如你忘記了結束標籤)。其中一個主要的原因是 HTML 瀏覽器相當臃腫,兼容性也很差,並且它們有自己的方式來確定當發現錯誤時文檔應該顯示爲什麼樣子。

使用 XML 時,這種情況不應當存在。

對您的 XML 進行語法檢查 - 僅用於 IE 瀏覽器

爲了幫助您對 XML 進行語法檢查,我們創建了一個 XML 驗證器。

把您的 XML 粘貼到下面的文本框中,然後點擊"驗證"按鈕來進行語法檢查。

<?xml version="1.0" ?> <note> <to>George</to> <from>John</Ffrom> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>

 

根據 DTD 來驗證 XML

只要把 DOCTYPE 聲明添加到您的 XML 中,然後點擊驗證按鈕即可:

<?xml version="1.0" ?> <!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]> <note> <to>George</to> <from>John</Ffrom> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>

 

註釋:只有在 Internet Explorer 中,可以根據 DTD 來驗證 XML。Firefox, Mozilla, Netscape 以及 Opera 做不到這一點。

幾乎所有的主流瀏覽器均支持 XML 和 XSLT。

Mozilla Firefox

從 1.0.2 版本開始,Firefox 就已開始支持 XML 和 XSLT(包括 CSS)。

Mozilla

Mozilla 含有用於 XML 解析的 Expat,並支持顯示 XML + CSS。Mozilla 同時擁有對 Namespaces 的某些支持。

Mozilla 同樣可做到對 XSLT 的執行(XSLT implementation)。

Netscape

自從版本 8 開始,Netscape 開始使用 Mozilla 的引擎,因此它對 XML / XSLT 的支持與 Mozilla 是相同的。

Opera

自從版本 9 開始,Opera 已經擁有對 XML / XSLT(以及 CSS)的支持。版本 8 僅支持 XML + CSS。

Internet Explorer

自從版本 6 開始,Internet Explorer 就開始支持 XML、Namespaces、CSS、XSLT 以及 XPath。

註釋:Internet Explorer 5 同樣擁有對 XML 的支持,但是 XSL 部分與 W3C 的官方標準不兼容

在所有現代瀏覽器中,可能夠查看原始的 XML 文件。

不要指望 XML 文件會直接顯示爲 HTML 頁面。

查看 XML 文件

查看這個 XML 文件:

打開 XML 文件 - XML 文檔將顯示爲代碼顏色化的根以及子元素。通過點擊元素左側的加號或減號,可以展開或收起元素的結構。如需查看不帶有 + 和 - 符號的源代碼,請從瀏覽器菜單中選擇“查看源代碼”。

註釋:在 Netscape, Opera 以及 Safari 中,僅僅會顯示元素文本!要查看原始的 XML,請右擊頁面,然後選擇“查看源代碼”。

查看某個無效的 XML 文件

如果瀏覽器打開了某個有錯誤的 XML 文件,那麼它會報告這個錯誤。

爲什麼 XML 會這樣顯示?

XML 文檔不會攜帶有關如何顯示數據的信息。

由於 XML 標籤由 XML 文檔的作者“發明”,瀏覽器無法確定像 <table> 這樣一個標籤究竟描述一個 HTML 表格還是一個餐桌。

在沒有任何有關如何顯示數據的信息的情況下,大多數的瀏覽器都會僅僅把 XML 文檔顯示爲源代碼。

在下面的章節,我們會了解幾個有關這個顯示問題的解決方案,其中會使用 CSS、XSL、JavaScript 以及 XML 數據島。

通過使用 CSS,可爲 XML 文檔添加顯示信息。

使用 CSS 顯示您的 XML?

使用 CSS 來格式化 XML 文檔是有可能的。

下面的例子就是關於如何使用 CSS 樣式表來格式化某個XML文檔:

下面是此XML文件的一個片斷。 第二行,<?xml-stylesheet type="text/css" href="cd_catalog.css"?>,把這個 XML 文件鏈接到 CSS 文件:

<?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/css" href="cd_catalog.css"?> <CATALOG> <CD> <TITLE>Empire Burlesque</TITLE> <ARTIST>Bob Dylan</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>Columbia</COMPANY> <PRICE>10.90</PRICE> <YEAR>1985</YEAR> </CD> <CD> <TITLE>Hide your heart</TITLE> <ARTIST>Bonnie Tyler</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>CBS Records</COMPANY> <PRICE>9.90</PRICE> <YEAR>1988</YEAR> </CD> . . . . </CATALOG>

註釋:使用 CSS 格式化 XML 不能代表 XML 文檔樣式化的未來。XML 文檔應當使用 W3C 的 XSL 標準進行格式化!

通過使用 XSLT,您可以向 XML 文檔添加顯示信息。

使用 XSLT 顯示 XML

XSLT 是首選的 XML 樣式表語言。

XSLT (eXtensible Stylesheet Language Transformations) 遠比 CSS 更加完善。

使用 XSLT 的方法之一是在瀏覽器顯示 XML 文件之前,先把它轉換爲 HTML,正如以下的這些例子演示的那樣:

 

下面是此 XML 文件的一個片斷。 第二行,<?xml-stylesheet type="text/xsl" href="simple.xsl"?>,把這個 XML 文件鏈接到 XSL 文件:

<?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/xsl" href="simple.xsl"?> <breakfast_menu> <food> <name>Belgian Waffles</name> <price>$5.95</price> <description> two of our famous Belgian Waffles </description> <calories>650</calories> </food> </breakfast_menu>

 

在服務器上通過 XSLT 轉換 XML

在上例中,XSLT 轉換是由瀏覽器完成的,瀏覽器讀取的是 XML 文件。

在使用 XSLT 來轉換 XML 時,不同的瀏覽器可能會產生不同結果。爲了減少這種問題,可以在服務器上進行 XSLT 轉換。 

G633 Padang Light    Spider Cream

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章