首頁 後端開發 XML/RSS教程 瘋狂XML學習筆記(2)-------------格式要求

瘋狂XML學習筆記(2)-------------格式要求

Feb 21, 2017 pm 02:04 PM

Xml的語法

         一個XML檔案分為以下幾個部分:

     文件宣告

     元素

##–     #屬性

     註解 

# –    

##CDATA

區、特殊字元##–#    

處理指令(

processing instruction

#Xml的宣告

最簡單宣告

 

Encoding屬性

:字元編碼如果沒有指定預設的是

UTF-8編碼

常見的字元集

#簡體中文:GBK GB2312

#繁體中文: BIG5



##西歐字元

:ISO8859-1

#通用的國際編碼

:Unicode  UTF-8

#示範案例: 

<
中國

>中國
>

造成錯誤的原因是:


編碼的錯誤

#解碼成字元


## 字元集錯誤時的

xml

文件


## ###########################新建是一個###.txt###文件########### #儲存的是###.xml UTF-8###############預設的編碼###ANSI###############中國##############################################寫入到硬碟# ###########編碼成二進位碼############00 11##################### ########################磁碟檔案##################

 

Standalone:指定該文件是否需要引用其它資源,屬性值只有:yesno

Yes:獨立      No:不獨立

XML檔案和HTML檔案一樣,實際上是文字檔案。

顯然大家立刻就會明白,創建XML檔案最普通的工具和HTML一樣,就是"記事本"了。

除了"記事本"之外,當然還有一些更方便的工具,如XML Notepad、XML Pro、CLIP! XML Editor等,

這些工具的一大特點是:能夠檢查你所建立的XML檔案是否符合XML規格。不過,現在這些工具都只有英文版的,而且需要付費使用。

當然,你還是能夠使用FrontPage、DreamWeaver等工具,不過使用起來不是很方便。

隨著XML的逐漸普及,相信在不久後,也會出現非常好用的創建XML檔案的工具。
現在我們暫且使用"記事本"來建立我們的XML檔吧。先看一個XML檔:

 
例1


〈?xml version="1.0" encoding="gb2312" ?〉
〈參考資料〉
〈書〉
〈姓名〉XML入門精解〈/姓名〉
〈作者〉張三〈/作者〉
〈價格貨幣單位="人民幣"〉20.00〈/價〉
〈/書〉
〈書〉
〈姓名〉XML文法〈/名稱〉
〈!--此書即將出版--〉
〈作者〉李四〈/作者〉
〈價格貨幣單位="人民幣"〉18.00〈/價〉
〈/書籍〉
〈/參考資料〉

 


這是一個典型的XML文件,編輯好後儲存為一個以.xml為後綴的文件。我們可以將此文件分為文件序言(Prolog)和文件主體兩個大的部分。

在此文件中的第一行即是文件序言。該行是XML檔案必須聲明的東西,而且也必須位於XML檔案的第一行,它主要是告訴XML解析器如何運作。

其中,version是標明此XML檔案所用的標準的版本號,必須要有;encoding指明了此XML檔案中所使用的字元類型,可以省略,在你省略此聲明的時候,後面的字元碼必須是Unicode字元碼(建議不要省略)

。因為我們在這個例子中使用的是GB2312字元碼,所以encoding這個聲明也不能省略。在文件序言部分還有一些聲明語句,我們在後面給予介紹。

 


檔案的其餘部分都是屬於檔案主體,XML檔案的內容資訊存放在此。

我們可以看到,文件主體是由開始的〈參考資料〉和結束的〈/參考資料”控制標記所組成,這個稱為XML文件的"根元素";〈書〉是作為直屬於根元素下的"子元素";在〈書本〉下又有〈名稱〉、〈作者〉、〈價格〉這些子元素。貨幣單位是〈價格〉元素中的一個"屬性","人民幣"則是"屬性值"。


首先,XML檔案的第一行必須是宣告該檔案是XML檔案以及它所使用的XML規格版本。在文件的前面不能夠有其它元素或註釋。


第二,在XML檔案中有且只能夠有一個根元素。在我們的第一個例子中,〈參考資料〉... 〈/參考資料”就是此XML檔的根元素。


第三,在XML檔案中的標記必須正確地關閉,也就是說,在XML檔案中,控制標記必 須有與之對應的結束標記。如:〈名稱〉標記必須有對應的〈/名稱〉結束標記,不像HTML,某些標記的結束標記可有可無。如果在XML檔案中遇到自成一個單元的標記,就是類似HTML 中的〈img src=http://www.php.cn/〉的這些沒有結束標記的時候,XML稱它為"空元素",必須用這樣的寫法:〈空元素名/〉,如果元素中含有屬性時寫法則為:〈空元素名屬性名="屬性值"/〉。


第四,標記之間不得交叉。在先前的HTML檔中,可以這樣寫:
〈B〉〈H〉XXXXXXX〈/B〉〈/H〉,〈B〉和〈H〉
標記之間有相互重疊的區域,而在XML中,是嚴格禁止這樣標記交錯的寫法,標記必須以規則性的次序來出現。


第五,屬性值必須要用" "號括起來。如第一個例子中的"1.0"、"gb2312"、"人民幣"。都是用" "號括起來了的,不能漏掉。


第六,控制標記、指令和屬性名稱等英文要區分大小寫。與HTML不同的是,在HTML中,類似〈B〉與〈b〉的標記意義是一樣的,而在XML中,類似〈name〉、〈NAME〉或〈Name〉這樣的標記是不同的


第七,我們知道,在HTML檔案中,如果我們要瀏覽器原封不動地將我們所輸入的東西顯示出來,可以將這些東西放到〈pre〉〈/pre〉或者〈xmp〉〈/xmp〉標記中間。這對於我們建立HTML教學的網頁是必不可少的,因為網頁中要顯示HTML的原始碼。而在XML中,要實現這樣的功能,就必須使用CDATA標記。在CDATA標記中的信息被解析器原封不動地傳給應用程序,並且不解析該段資訊中的任何控制標記。 CDATA區域是由:"〈![CDATA["為開始標記,以">〉"結束標記。例如:例2中的源碼,除了"〈![CDATA["和">〉"符號,其餘的內容解析器將原封不動地交給下游的應用程序,即使CDATA區域中的開始和結尾的空白以及換行字元等,都同樣會被轉交(注意CDATA是大寫的字元)。


 

 

Xml元素的基本規則

#   元素是xml文件的基本單元

,xml

文件就是一個層層嵌套的元素所組成的。整個的xml文件從根元素開始,根元素包含若干個子元素,而每個子元素又可以包含若干個子元素,從而可以組成一個

xml

文檔。 Xml標籤語法:

#  1Xml的標籤分為兩大類:

     單一標記:<中國/>     雙重標記:<中國>中國>

  2xml#標籤的要求:

      1

、標籤名可以有字母(包含非西歐字元)、數字、底線(_)、中劃線

(-)

、冒號(:)和點號(.)組成,但不能以數字、中劃線和點號開頭。

2、標籤名稱不能包含<

>

、,、$等符號

######3###、標籤名種盡量不要出現英文的冒號###(:),###除非在使用命名空間。 ###############4###、標籤名稱不能以字元###xml###、###XML###等任意大小寫組合開始。 ###############5###、標籤名稱不能包含空格。 ###############6###、標籤名稱區分大小寫#######

3xml標籤嵌套子元素:xml允許深度嵌套子元素,只要保證元素之間合理的嵌套即可.而且xml元素可以嵌套多個重名的子元素,這多個子元素之間是有序的。

    第一個:xml

<中國>

 <位於北京>

##     <海淀/>

     <朝陽>朝陽>

     <朝陽>朝陽#>

 北京>

中國>

  第二個xml

<中國>

# <北京>

##     <朝陽

>朝陽>

##     <朝陽

>朝陽>

##    <

#    <

/>

 北京>

##中國

>

##########4###、空元素:空元素不可接受子元素## #,###也不可以接受字串內容。 ###############     ###第三個###xml###:############      #########      #########      #########      ##### #######         redarmy###############         ############    #############    #############    ########### #         redarmy###############         ###########      #############例如空白元素接受屬性:######

  建议” price=”30”/>

5、字符数据

  

      Struts2开发详解

     

         Struts2开发详解

     

  

  对于XML标签中出现的所有空格和换行,XML解析程序都会当作标签内容进行处理

 如果文本字符中包含了一些特殊的字符,例如<&由于这些字符都有特殊的含义,因此直接在xml文档中使用该字符串将引起文档的混乱。

<表达式>

 

        <比较符>1+3<6比较符>

   表达式>

代表的是文本字符串中包含了特殊的字符

 

有以下两种方法解决:

1、 使用实体引用:用另一个特殊符号代替这些特殊符号

2、使用CDATA标记:将整个文档定义成字符串。

1、  使用实体引用

       

  <表达式>

        <比较符>1+3&<6比较符>

  表达式>

上面的红色的<产生了干扰

解决如下:

 

  <表达式>

        <比较符>1+3<6比较符>

      表達式>

2、  使用CDATA 標記

在特殊標記CDATA,所有的特殊字元,甚至是有效的元素都將被當成簡單的字串處理。實體引用也會失去作用,變成直接的文字。

CDATA的語法格式如下:

< ![CDATA[文字內容]]>

  <表達式>

        < 比較符>

          +3<6

              ]]>

      

表達式>

    備註:由於xml文件根本不會對

CDATA

標記內容進行任何解析,因此在CDATA內可以放置任何內容,其中的內容永遠不會出錯。 1、  註解

#Xml文件也可以加入解釋用的字元資料,這些解釋用的字串不會被

xml

解析器處理。這些解釋用的文字稱為註釋。 Xml的文檔註解與html完全一致。 Xml註解的語法格式如下:

Xml的註解允許包含元素和標籤。

注意:

1、

  Xml的註解不能夠放在標籤體內。

2、  不要把xml文檔放在

xml

文檔宣告之前  xml文檔的宣告永遠在第一行3、  不在註解中使用雙中劃線(--)

…..

2、

  處理指示

處理指令,簡稱PI processing instruction)。處理指令用來指揮解析引擎如何解析

XML

文件內容。

處理指令用於提供處理xml文件的應用程式資訊,告訴處理程序應該如何處理該文件。一個完整的xml文件的處理程序,可以讀取xml文件的處理指令,並根據處理指令進行對應處理,或將它傳給下一個程式。

Xml處理指令的格式如下:

處理指令名處理指令資訊?>

3、  屬性

##xml屬性的特徵:

1、  xml元素的屬性必須有屬性值,屬性值必須用引號引起來。

2、  同一個xml元素裡不能有多個同名的屬性

3、  Xml元素裡的多個屬性之間沒有先後順序。

<book>
     <isbn>123456780</isbn>
     <book_name>Java讲义</book_name>
      <price>99</price>
</book>
登入後複製


比如說這個book#本身就有 isbn  book_name price的屬性

那麼

<book isbn=”” book_name=”” price=””/>
登入後複製


#Xml

#Xml必須有一個根元素。 Xml文檔的整體結構

#1、  必須有一個根元素(

有且只有一個

)

#2、  元素必須合理結束

3、  元素之間必須合理巢狀

#4、  元素的屬性必須有屬性值

只要不滿足上面的條件就是一個格式不良好的

xml文檔#只要滿足上面的條件就是一個格式良好的xml文檔

並且遵守了dtdschema就是一個有效的xml文件。

Xml文檔是一種標準的結構化文檔,可以轉換成DOM(Document Object Model)

,

其根節點對應DOM樹的根節點。

<book>
    <computer>
       <name>网上介绍</name>
       <author>redarmy</author>
    </computer>
    <computer>
        <name>网上介绍</name>
       <author>redarmy</author>
    </computer>
</book>
登入後複製



#book


#computer


computer


………


######################################################################## ################computer###################


name


#author

 

注意:

必須具有根標記且根標記必須唯一

開始標記和結束標記需配對使用

標記不能交錯使用

空標記可寫成「<標記名稱/>」的形式

標記對大小寫敏感

#以上就是瘋狂XML學習筆記(2)--------- ----格式要求的內容,更多相關內容請關注PHP中文網(www.php.cn)!


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1670
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1273
29
C# 教程
1256
24
能否用PowerPoint開啟XML文件 能否用PowerPoint開啟XML文件 Feb 19, 2024 pm 09:06 PM

XML檔可以用PPT開啟嗎? XML,即可擴展標記語言(ExtensibleMarkupLanguage),是一種廣泛應用於資料交換和資料儲存的通用標記語言。與HTML相比,XML更加靈活,能夠定義自己的標籤和資料結構,使得資料的儲存和交換更加方便和統一。而PPT,即PowerPoint,是微軟公司開發的一種用於創建簡報的軟體。它提供了圖文並茂的方

Python中的XML資料轉換為CSV格式 Python中的XML資料轉換為CSV格式 Aug 11, 2023 pm 07:41 PM

Python中的XML資料轉換為CSV格式XML(ExtensibleMarkupLanguage)是一種可擴充標記語言,常用於資料的儲存與傳輸。而CSV(CommaSeparatedValues)則是一種以逗號分隔的文字檔案格式,常用於資料的匯入和匯出。在處理資料時,有時需要將XML資料轉換為CSV格式以便於分析和處理。 Python作為一種功能強大

使用Python處理XML中的錯誤和異常 使用Python處理XML中的錯誤和異常 Aug 08, 2023 pm 12:25 PM

使用Python處理XML中的錯誤和異常XML是一種常用的資料格式,用於儲存和表示結構化的資料。當我們使用Python處理XML時,有時可能會遇到一些錯誤和異常。在本篇文章中,我將介紹如何使用Python來處理XML中的錯誤和異常,並提供一些範例程式碼供參考。使用try-except語句捕捉XML解析錯誤當我們使用Python解析XML時,有時候可能會遇到一些

Python解析XML中的特殊字元和轉義序列 Python解析XML中的特殊字元和轉義序列 Aug 08, 2023 pm 12:46 PM

Python解析XML中的特殊字元和轉義序列XML(eXtensibleMarkupLanguage)是一種常用的資料交換格式,用於在不同系統之間傳輸和儲存資料。在處理XML檔案時,經常會遇到包含特殊字元和轉義序列的情況,這可能會導致解析錯誤或誤解資料。因此,在使用Python解析XML檔案時,我們需要了解如何處理這些特殊字元和轉義序列。一、特殊字元和

C#開發中如何處理XML和JSON資料格式 C#開發中如何處理XML和JSON資料格式 Oct 09, 2023 pm 06:15 PM

C#開發中如何處理XML和JSON資料格式,需要具體程式碼範例在現代軟體開發中,XML和JSON是廣泛應用的兩種資料格式。 XML(可擴展標記語言)是一種用於儲存和傳輸資料的標記語言,而JSON(JavaScript物件表示)是一種輕量級的資料交換格式。在C#開發中,我們經常需要處理和操作XML和JSON數據,本文將重點放在如何使用C#處理這兩種數據格式,並附上

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

PHP學習筆記:資料結構與演算法 PHP學習筆記:資料結構與演算法 Oct 09, 2023 pm 11:54 PM

PHP學習筆記:資料結構與演算法概述:資料結構和演算法是電腦科學中非常重要的兩個概念,它們是解決問題和最佳化程式碼效能的關鍵。在PHP程式設計中,我們常常需要使用各種資料結構來儲存和操作數據,同時也需要使用演算法來實現各種功能。本文將介紹一些常用的資料結構和演算法,並提供對應的PHP程式碼範例。一、線性結構數組(Array)數組是最常用的資料結構之一,可以用來儲存有序的數據

如何使用 PHP 函數處理 XML 資料? 如何使用 PHP 函數處理 XML 資料? May 05, 2024 am 09:15 AM

使用PHPXML函數處理XML資料:解析XML資料:simplexml_load_file()和simplexml_load_string()載入XML檔案或字串。存取XML資料:利用SimpleXML物件的屬性和方法來取得元素名稱、屬性值和子元素。修改XML資料:使用addChild()和addAttribute()方法新增元素和屬性。序列化XML資料:asXML()方法將SimpleXML物件轉換為XML字串。實戰案例:解析產品饋送XML,提取產品信息,轉換並將其儲存到資料庫中。

See all articles