Koi

C#读取Xml文件

描述:读取xml文件中的信息,将其输出。

主要使用了XmlDocument 类,具体可在MSDN上查阅。

注意在读取文件时用Load()方法而不是LoadXml(),否则可能会出现类似于错误如下:

“读取XML 错误:根级别上的数据无效。 第 1 行,位置 1”

要读取的xml文件:test.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="utf-8" ?>
<AllAreas>
<AreaList listid="1">
<areaID>-4</areaID>
<Area>数字电视</Area>
<Zone>数字</Zone>
</AreaList>
<AreaList listid="2">
<areaID>-3</areaID>
<Area>海外电视</Area>
<Zone>海外</Zone>
</AreaList>
</AllAreas>

把每个AreaList中的项目都存储到对应的类Model中

1
2
3
4
5
6
7
class Model
{
public string AreaID { get; set; }
public string Area { get; set; }
public string Zone { get; set; }
public string AreaListId { get; set; }
}

Main函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
static void Main(string[] args)
{
XmlDocument xdoc = new XmlDocument();
List<Model> modelList = new List<Model>();
//LoadXml (): 该方法从字符串中读取XML。Load ():方法将文档置入内存中并包含可用于从每个不同的格式中获取数据的重载方法。
xdoc.Load(@"C:\Users\akill\Desktop\Test.xml".Trim());
XmlNodeList areaNodesList = xdoc.SelectSingleNode("AllAreas").ChildNodes;
foreach (XmlNode p in areaNodesList)
{
modelList.Add(new Model {
Area = p["Area"].InnerText,
AreaID = p["areaID"].InnerText,
Zone = p["Zone"].InnerText,
AreaListId = p.Attributes["listid"].Value });
}
//打印各个实例的值
foreach (Model p in modelList)
{
Console.WriteLine("AreaID:{0}\nArea:{1}\nZone:{2}\nListID:{3}\n",
p.AreaID, p.Area, p.Zone, p.AreaListId);
}
}

控制台输出:

1
2
3
4
5
6
7
8
9
AreaID:-4
Area:数字电视
Zone:数字
ListID:1
AreaID:-3
Area:海外电视
Zone:海外
ListID:2