01 XML介紹
①:XML是eXtensible Markup Language的縮寫,即擴展標記語言。
②:XML是一種可以用來創建自定義的標記語言,由W3C(萬維網協會)創建,用來克服HTML的局限。
③:功能區別:XML主要用于數據的存儲和傳遞,節點數量不限,可以自由擴展;HTML主要用于數據顯示,有多少節點是固定的。
02 XML文檔的格式要求
①:確定且唯一的根元素;
②:開始標簽和結束標簽相匹配;
③:元素標簽的正確嵌套;
④:屬性值要用引號括起來;
⑤:同一個元素的屬性不能重復。
03 XML語法要求
【1】元素:<標簽>文本內容</標簽>;
【2】處理指令:<?xml version="1.0"?>;
【3】注釋:<!--這是一個xml注釋-->;
【4】屬性:<salary currency=“US$”>10000</salary>;
04 XML文件
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>
05 UI設計
5.1、添加控件
根據功能需求,添加UI界面的控件。
添加一個DataGridView控件、兩個Button控件,控件的屬性設置可參考《賬號管理系統相關文章》
5.2、效果演示
06 XML文件讀取
6.1、讀取思路
①:引入命名空間;
②:創建文檔對象;
③:加載XML文檔;
④:獲取根節點;
⑤:遍歷節點并封裝數據;
6.2、代碼如下
①:引入命名空間
②:加載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,"版本信息");
}
07 XML文件讀取總結
7.1、常用對象
①:XmlDocument對象表示XML整個文檔;
②:XmlNode對象表示XML文件的單個節點;
7.2、常用屬性及說明
對象 | 屬性和方法 | 說明 |
XmlDocument | DocumentElement屬性 | 獲取根節點 |
ChildNodes屬性 | 獲取所有子節點 |
Load()方法 | 讀取整個XML的結構 |
XmlNode | InnerText屬性 | 當前節點的值 |
Name屬性 | 當前節點的名字 |
ChildNodes屬性 | 當前所有節點的所有子節點 |
該文章在 2024/5/17 15:47:22 編輯過