所有主流的瀏覽器中,均能夠查看原始的 XML 文件。
不要指望 XML 文件會直接顯示為 HTML 頁面。
查看 XML 文件
<?xml version="1.0" encoding="ISO-8859-1"?>
- <note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
查看這個 XML 文件:note.xml
XML 文檔將顯示為代碼顏色化的根以及子元素。通過點擊元素左側的加號(+)或減號( - ),可以展開或收起元素的結構。要查看原始的 XML 源(不包括 + 和 - 符號),選擇"查看頁面源代碼"或從瀏覽器菜單"查看源文件"。
注釋:在 Safari 中,只有元素的文本將被顯示。要查看原始的 XML,您必須右鍵單擊頁面,選擇"查看源文件"。
查看無效的 XML 文件
如果一個錯誤的XML文件被打開,瀏覽器會報告錯誤。
請查看這個 XML 文件:note_error.xml
其他 XML 實例
請查看這些 XML 文檔,這會有助于您建立對 XML 的感性認識。
一個 XML 的 CD 目錄
這是一個 CD 集,存儲為 XML 數據。
一個 XML 的植物目錄
這是一個來自植物店的植物目錄,存儲為 XML 數據。
一個簡單的食物菜單
這是一個來自餐館的早餐菜單,存儲為 XML 數據。
為什么 XML 顯示這個樣子?
XML 文檔不會攜帶有關如何顯示數據的信息。
由于 XML 標簽由 XML 文檔的作者"發明",瀏覽器無法確定像 <table> 這樣一個標簽究竟描述一個 HTML 表格還是一個餐桌。
在沒有任何有關如何顯示數據的信息的情況下,大多數的瀏覽器都會僅僅把 XML 文檔顯示為源代碼。
如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!
嘍,你好啊,我是雷工!
之前有朋友在群里聊XML文件操作的問題,今天正好學習相關內容,
以下為學習筆記。
①:XML是eXtensible Markup Language的縮寫,即擴展標記語言。
②:XML是一種可以用來創建自定義的標記語言,由W3C(萬維網協會)創建,用來克服HTML的局限。
③:功能區別:XML主要用于數據的存儲和傳遞,節點數量不限,可以自由擴展;HTML主要用于數據顯示,有多少節點是固定的。
①:確定且唯一的根元素;
②:開始標簽和結束標簽相匹配;
③:元素標簽的正確嵌套;
④:屬性值要用引號括起來;
⑤:同一個元素的屬性不能重復。
【1】元素:<標簽>文本內容</標簽>;
【2】處理指令:<?xml version="1.0"?>;
【3】注釋:<!--這是一個xml注釋-->;
【4】屬性:<salary currency=“US$”>10000</salary>;
4.1、添加XML文件
在測試程序中添加類,選擇XML文件,填寫名稱“LeiGongXMLFile1”,然后點擊【添加】按鈕。
4.2、編輯XML文件
在文件中添加如下內容:
<?xml version="1.0" encoding="utf-8" ?>
<Authors>
<Author>
<AutName>雷工</AutName>
<AutAge>18</AutAge>
<Gender>男</Gender>
<Account>雷工筆記</Account>
</Author>
<Author>
<AutName>康工</AutName>
<AutAge>17</AutAge>
<Gender>男</Gender>
<Account>康工筆記</Account>
</Author>
<Author>
<AutName>老王</AutName>
<AutAge>16</AutAge>
<Gender>男</Gender>
<Account>隔壁老王</Account>
</Author>
<Author>
<AutName>小陳</AutName>
<AutAge>19</AutAge>
<Gender>女</Gender>
<Account>小陳美食</Account>
</Author>
<Edition>
<EdiInfo ediNO="1.9" ediTime="2024-04-28">版本信息</EdiInfo>
</Edition>
</Authors>
5.1、添加控件
根據功能需求,添加UI界面的控件。
添加一個DataGridView控件、兩個Button控件,控件的屬性設置可參考合集《賬號管理系統相關文章》
5.2、效果演示
6.1、讀取思路
①:引入命名空間;
②:創建文檔對象;
③:加載XML文檔;
④:獲取根節點;
⑤:遍歷節點并封裝數據;
6.2、代碼如下
①:引入命名空間
using System.Xml;
②:加載XML文件
private void btnLoadXml_Click(object sender, EventArgs e)
{
//創建XML文檔操作對象
XmlDocument objDoc=new XmlDocument();
//加載XML文件到文檔對象中
objDoc.Load("F:\\F004-C#\\B002_xiangmu\\A002_FileOperation\\LeiGongXMLDemo\\LeiGongXMLFile1.xml");
//獲取XML文檔根目錄
XmlNode xmlNode=objDoc.DocumentElement;
//創建對象集合
List<Author> list=new List<Author>();
//遍歷根節點(根節點包含所有節點)
foreach(XmlNode node in xmlNode.ChildNodes)
{
if(node.Name=="Author")
{
Author author=new Author();
foreach(XmlNode xmlNode1 in node)//遍歷子節點
{
switch(xmlNode1.Name)
{
case "AutName":
author.AutName=xmlNode1.InnerText;
break;
case "AutAge":
author.AutAge=Convert.ToInt16(xmlNode1.InnerText);
break;
case "Gender":
author.Gender=xmlNode1.InnerText;
break;
case "Account":
author.Account=xmlNode1.InnerText;
break;
}
}
list.Add(author);
}
}
this.dgvAutList.DataSource=list;
}
③:顯示版本信息
private void btnShowVersion_Click(object sender, EventArgs e)
{
//創建XML讀取器
XmlTextReader xmlTextReader=new XmlTextReader("F:\\F004-C#\\B002_xiangmu\\A002_FileOperation\\LeiGongXMLDemo\\LeiGongXMLFile1.xml");
string info=string.Empty;
//循環查詢
while (xmlTextReader.Read())
{
if(xmlTextReader.Name=="EdiInfo")
{
info="版本:" + xmlTextReader.GetAttribute("ediNO") + "發布時間:" + xmlTextReader.GetAttribute("ediTime");
break;
}
}
MessageBox.Show(info,"版本信息");
}
7.1、常用對象
①:XmlDocument對象表示XML整個文檔;
②:XmlNode對象表示XML文件的單個節點;
7.2、常用屬性及說明
對象 | 屬性和方法 | 說明 |
XmlDocument | DocumentElement屬性 | 獲取根節點 |
ChildNodes屬性 | 獲取所有子節點 | |
Load()方法 | 讀取整個XML的結構 | |
XmlNode | InnerText屬性 | 當前節點的值 |
Name屬性 | 當前節點的名字 | |
ChildNodes屬性 | 當前所有節點的所有子節點 |
萬維網協會推出的一套數據交換標準——XML,是一種可擴展的標記語言,被設計用來傳輸和存儲數據。XML 可用于定義 Web 網頁上的文檔元素以及復雜數據的表述和傳輸。
Extensible Markup Language,簡稱 XML,中文含義是可擴展標記語言,該語言與 HTML 類似,主要功能是傳輸數據、儲存數據和共享數據。XML 語言沒有規定的標簽體,需要自定義標簽,是一種自我描述的語言。XML 與 HTML 有著本質的區別,XML 傳輸和存儲數據,而 HTML 用來顯示數據。
XML 的最大特點是自我描述和任意擴展,當用其描述數據時,用戶可以根據需要,組織符合 XML 規范形式的任意內容,并且標簽的名稱也可以由用戶指定。
圖片來源網絡
例如,一個描述書籍的XML文檔可能如下:
<?xml version="1.0" encoding="UTF-8" ?> <!-- 文檔聲明,默認編碼為UTF-8 --><!DOCTYPE note SYSTEM "book.dtd"><book id="1"> <name>Java核心技術</name> <author>Cay S. Horstmann</author> <isbn lang="CN">1234567</isbn> <tags> <tag>Java</tag> <tag>Network</tag> </tags> <pubDate/></book>
XML有固定的結構,首行必定是<?xml version="1.0"?>,可以加上可選的編碼。緊接著,如果以類似<!DOCTYPE note SYSTEM "book.dtd">聲明的是文檔定義類型(DTD:Document Type Definition),DTD是可選的。接下來是XML的文檔內容,一個XML文檔有且僅有一個根元素,根元素可以包含任意個子元素,元素可以包含屬性,例如,<isbn lang="CN">1234567</isbn>包含一個屬性lang="CN",且元素必須正確嵌套。如果是空元素,可以用<tag/>表示。
XML有幾個特點:一是純文本,默認使用UTF-8編碼,二是可嵌套,適合表示結構化數據。如果把XML內容存為文件,那么它就是一個XML文件,例如book.xml。此外,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 文檔有且只有一個根元素來定義整個文檔。
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 < 1000 then</message>
在 XML 中,有 5 個預定義的實體引用:
<<小于>>大于&&和號''單引號""引號
注釋:在 XML 中,只有字符 "<" 和 "&" 確實是非法的。大于號是合法的,但是用實體引用來代替它是一個好習慣。
XML 中的注釋
在 XML 中編寫注釋的語法與 HTML 的語法很相似:
<!-- This is a comment -->
在 XML 中,空格會被保留
HTML 會把多個連續的空格字符裁減(合并)為一個.在 XML 中,文檔中的空格不會被刪節。
XML 以 LF 存儲換行
在 Windows 應用程序中,換行通常以一對字符來存儲:回車符 (CR) 和換行符 (LF)。這對字符與打字機設置新行的動作有相似之處。在 Unix 應用程序中,新行以 LF 字符存儲。而 Macintosh 應用程序使用 CR 來存儲新行。
什么是 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 元素必須遵循以下命名規則:
可使用任何名稱,沒有保留的字詞。
最佳命名習慣
使名稱具有描述性。使用下劃線的名稱也很不錯。
名稱應當比較簡短,比如:<book_title>,而不是:<the_title_of_the_book>。
避免 "-" 字符。如果您按照這樣的方式進行命名:"first-name",一些軟件會認為你需要提取第一個單詞。
避免 "." 字符。如果您按照這樣的方式進行命名:"first.name",一些軟件會認為 "name" 是對象 "first" 的屬性。
避免 ":" 字符。冒號會被轉換為命名空間來使用(稍后介紹)。
XML 文檔經常有一個對應的數據庫,其中的字段會對應 XML 文檔中的元素。有一個實用的經驗,即使用數據庫的名稱規則來命名 XML 文檔中的元素。
非英語的字母比如 éòá 也是合法的 XML 元素名,不過需要留意當軟件開發商不支持這些字符時可能出現的問題。
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 "Shotgun" Ziegler">
可參閱:
本文由以上文章整理
點擊下方“了解更多”查看網頁原文,謝謝您的關注!
*請認真填寫需求信息,我們會在24小時內與您取得聯系。