01 XML介紹
①:XML是eXtensible Markup Language的縮寫,即擴(kuò)展標(biāo)記語言。
②:XML是一種可以用來創(chuàng)建自定義的標(biāo)記語言,由W3C(萬維網(wǎng)協(xié)會(huì))創(chuàng)建,用來克服HTML的局限。
③:功能區(qū)別:XML主要用于數(shù)據(jù)的存儲(chǔ)和傳遞,節(jié)點(diǎn)數(shù)量不限,可以自由擴(kuò)展;HTML主要用于數(shù)據(jù)顯示,有多少節(jié)點(diǎn)是固定的。
02 XML文檔的格式要求
①:確定且唯一的根元素;
②:開始標(biāo)簽和結(jié)束標(biāo)簽相匹配;
③:元素標(biāo)簽的正確嵌套;
④:屬性值要用引號(hào)括起來;
⑤:同一個(gè)元素的屬性不能重復(fù)。
03 XML語法要求
【1】元素:<標(biāo)簽>文本內(nèi)容</標(biāo)簽>;
【2】處理指令:<?xml version="1.0"?>;
【3】注釋:<!--這是一個(gè)xml注釋-->;
【4】屬性:<salary currency=“US$”>10000</salary>;
04 XML文件
4.1、添加XML文件
在測(cè)試程序中添加類,選擇XML文件,填寫名稱“LeiGongXMLFile1”,然后點(diǎn)擊【添加】按鈕。
4.2、編輯XML文件
在文件中添加如下內(nèi)容:
<?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>
05 UI設(shè)計(jì)
5.1、添加控件
根據(jù)功能需求,添加UI界面的控件。
添加一個(gè)DataGridView控件、兩個(gè)Button控件,控件的屬性設(shè)置可參考《賬號(hào)管理系統(tǒng)相關(guān)文章》
5.2、效果演示
06 XML文件讀取
6.1、讀取思路
①:引入命名空間;
②:創(chuàng)建文檔對(duì)象;
③:加載XML文檔;
④:獲取根節(jié)點(diǎn);
⑤:遍歷節(jié)點(diǎn)并封裝數(shù)據(jù);
6.2、代碼如下
①:引入命名空間
②:加載XML文件
private void btnLoadXml_Click(object sender, EventArgs e)
{
//創(chuàng)建XML文檔操作對(duì)象
XmlDocument objDoc = new XmlDocument();
//加載XML文件到文檔對(duì)象中
objDoc.Load("F:\\F004-C#\\B002_xiangmu\\A002_FileOperation\\LeiGongXMLDemo\\LeiGongXMLFile1.xml");
//獲取XML文檔根目錄
XmlNode xmlNode = objDoc.DocumentElement;
//創(chuàng)建對(duì)象集合
List<Author> list = new List<Author>();
//遍歷根節(jié)點(diǎn)(根節(jié)點(diǎn)包含所有節(jié)點(diǎn))
foreach(XmlNode node in xmlNode.ChildNodes)
{
if(node.Name=="Author")
{
Author author = new Author();
foreach(XmlNode xmlNode1 in node)//遍歷子節(jié)點(diǎn)
{
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)
{
//創(chuàng)建XML讀取器
XmlTextReader xmlTextReader = new XmlTextReader("F:\\F004-C#\\B002_xiangmu\\A002_FileOperation\\LeiGongXMLDemo\\LeiGongXMLFile1.xml");
string info = string.Empty;
//循環(huán)查詢
while (xmlTextReader.Read())
{
if(xmlTextReader.Name== "EdiInfo")
{
info = "版本:" + xmlTextReader.GetAttribute("ediNO") + "發(fā)布時(shí)間:" + xmlTextReader.GetAttribute("ediTime");
break;
}
}
MessageBox.Show(info,"版本信息");
}
07 XML文件讀取總結(jié)
7.1、常用對(duì)象
①:XmlDocument對(duì)象表示XML整個(gè)文檔;
②:XmlNode對(duì)象表示XML文件的單個(gè)節(jié)點(diǎn);
7.2、常用屬性及說明
對(duì)象 | 屬性和方法 | 說明 |
XmlDocument | DocumentElement屬性 | 獲取根節(jié)點(diǎn) |
ChildNodes屬性 | 獲取所有子節(jié)點(diǎn) |
Load()方法 | 讀取整個(gè)XML的結(jié)構(gòu) |
XmlNode | InnerText屬性 | 當(dāng)前節(jié)點(diǎn)的值 |
Name屬性 | 當(dāng)前節(jié)點(diǎn)的名字 |
ChildNodes屬性 | 當(dāng)前所有節(jié)點(diǎn)的所有子節(jié)點(diǎn) |
該文章在 2024/5/17 15:47:22 編輯過