今天的工作遇到了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());
}
}
}
}
效果如下图:
完。