XML

2018-02-24 15:18 更新

X分鐘速成Y

其中 Y=xml

源代碼下載:?learnxml-cn.xml

XML是一種標(biāo)記語(yǔ)言,被設(shè)計(jì)用來(lái)存儲(chǔ)數(shù)據(jù)和傳輸數(shù)據(jù)。

不像HTML, XML不指定怎樣顯示或格式化數(shù)據(jù),只是攜帶它。

  • XML 語(yǔ)法
<!-- XML中的注解像這樣 -->

<?xml version="1.0" encoding="UTF-8"?>
<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>

<!-- 上面是一個(gè)典型的XML文件。
  它以一個(gè)聲明開(kāi)始,通知一些元數(shù)據(jù)(自選的)

  XML使用一個(gè)樹(shù)的結(jié)構(gòu)。上面的文件中,根節(jié)點(diǎn)是'bookstore',它有三個(gè)孩子節(jié)點(diǎn),
  所有的'books'。那些節(jié)點(diǎn)有更多的孩子節(jié)點(diǎn),等等。。。

  節(jié)點(diǎn)用開(kāi)放/關(guān)閉標(biāo)簽創(chuàng)建, 并且孩子就是在開(kāi)發(fā)和關(guān)閉標(biāo)簽之間的節(jié)點(diǎn)。-->

<!-- XML 攜帶兩類信息:
  1 - 屬性 -> 那是關(guān)于一個(gè)元素的元數(shù)據(jù)。
      通常,XML解析器使用這些信息去正確地存儲(chǔ)數(shù)據(jù)。
      它通過(guò)在開(kāi)放標(biāo)簽里出現(xiàn)在插入語(yǔ)中來(lái)表示。
  2 - 元素 -> 那是純數(shù)據(jù)。
      那就是解析器將從XML文件提取的東西。
      元素出現(xiàn)在開(kāi)放和關(guān)閉標(biāo)簽之間,沒(méi)插入語(yǔ)。-->

<!-- 下面, 一個(gè)有兩個(gè)屬性的元素-->
<file type="gif" id="4293">computer.gif</file>
  • 良好格式的文件 x 驗(yàn)證

一個(gè)XML文件是良好格式的如果它是語(yǔ)法正確的。 但是, 使用文件定義,比如DTD和XML概要,在文件中插入更多的限制是可能的。

一個(gè)遵守一個(gè)文件定義的XML文件被叫做有效的,對(duì)于那個(gè)文件來(lái)說(shuō)。

有了這個(gè)工具,你能夠在應(yīng)用邏輯之外檢查XML數(shù)據(jù)。

<!-- 下面, 你能夠看到一個(gè)簡(jiǎn)化版本的增加了DTD定義的bookstore文件。-->

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note SYSTEM "Bookstore.dtd">
<bookstore>
  <book category="COOKING">
    <title >Everyday Italian</title>
    <price>30.00</price>
  </book>
</bookstore>

<!-- 這個(gè)DTD可能是像這樣的:-->

<!DOCTYPE note
[
<!ELEMENT bookstore (book+)>
<!ELEMENT book (title,price)>
<!ATTLIST book category CDATA "Literature">
<!ELEMENT title (#PCDATA)>
<!ELEMENT price (#PCDATA)>
]>

<!-- 這個(gè)DTD以一個(gè)聲明開(kāi)始。
  接下來(lái), 根節(jié)點(diǎn)被聲明, 它需要一個(gè)或多個(gè)孩子節(jié)點(diǎn)'book'。 
  每個(gè) 'book' 應(yīng)該準(zhǔn)確包含一個(gè) 'title' 和 'price' 和
  一個(gè)被叫做'category'的缺省值為"Literature"的屬性。
  這個(gè)'title' 和 'price'節(jié)點(diǎn)包含一個(gè)解析過(guò)的字符數(shù)據(jù)。-->

<!-- 這個(gè)DTD可以在XML文件中本身被聲明。-->

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE note
[
<!ELEMENT bookstore (book+)>
<!ELEMENT book (title,price)>
<!ATTLIST book category CDATA "Literature">
<!ELEMENT title (#PCDATA)>
<!ELEMENT price (#PCDATA)>
]>

<bookstore>
  <book category="COOKING">
    <title >Everyday Italian</title>
    <price>30.00</price>
  </book>
</bookstore>
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)