今天的工作遇到了c#解析xml的技術點,很久沒做c#開發了,忘的都差不多了。
在網上搜了一些不太滿足我的開發需要,就自己寫了一個,做一下記錄,以便以後再用的時候一看就明瞭。
這個解析xml的例子主要是獲取指定節點的值,沒其他的功能,很簡單
要解析的xml
<?xml version="1.0" encoding="gb2312" ?>
<DataDictionaryUpdateInfo>
<!--更新標識1:啓動更新 0:不用更新-->
<UpdateTarg>true</UpdateTarg>
<!--最新版本號-->
<Version>11</Version>
<!--字典項-->
<DictionaryItemList>
<DictionaryItem>
<TYPE>職業類型</TYPE>
<DESCRIPTION>職業類型</DESCRIPTION>
<ID>101</ID>
<NAME>農業</NAME>
</DictionaryItem>
<DictionaryItem>
<TYPE>職業類型</TYPE>
<DESCRIPTION>職業類型</DESCRIPTION>
<ID>101</ID>
<NAME>農業</NAME>
</DictionaryItem>
<DictionaryItem>
<TYPE>職業類型</TYPE>
<DESCRIPTION>職業類型</DESCRIPTION>
<ID>101</ID>
<NAME>農業</NAME>
</DictionaryItem>
</DictionaryItemList>
</DataDictionaryUpdateInfo>
首先要引入命名空間System.Xml
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Xml;
using System.IO;
namespace 讀XML測試
{
class Program
{
static void Main(string[] args)
{
//Directory.GetCurrentDirectory() 這個方法獲取可執行程序的目錄
Stream stream = new FileStream(Directory.GetCurrentDirectory() + "\\text.xml",FileMode.Open);
XmlDocument xml = new XmlDocument();
xml.Load(stream);
XmlNode DataDictionaryUpdateInfo = xml.SelectSingleNode("DataDictionaryUpdateInfo");
Console.WriteLine("是否更新:"+DataDictionaryUpdateInfo.SelectSingleNode("UpdateTarg").InnerText);
Console.WriteLine("最新版本號:" + DataDictionaryUpdateInfo.SelectSingleNode("Version").InnerText);
XmlNodeList list = DataDictionaryUpdateInfo.SelectSingleNode("DictionaryItemList").SelectNodes("DictionaryItem");
foreach(XmlNode node in list){
Console.WriteLine("-------------------------------------------------------------");
Console.WriteLine("職業類型:" + node.SelectSingleNode("TYPE").InnerText.Trim());
Console.WriteLine("職業描述:" + node.SelectSingleNode("DESCRIPTION").InnerText.Trim());
Console.WriteLine("職業ID:" + node.SelectSingleNode("ID").InnerText.Trim());
Console.WriteLine("職業名稱:" + node.SelectSingleNode("NAME").InnerText.Trim());
}
}
}
}
效果如下圖:
完。