在C#中解析XML

Gav*_*vin 1 .net c# xml

我正在寻找一种方法来阅读以下XML

<Data>
  <MaxCount>10</MaxCount>
  <Points>
    <Point X="10" Y="10"/>
    <Point X="20" Y="10"/>
    <Point X="30" Y="10"/>
    <Point X="40" Y="10"/>
    <Point X="50" Y="10"/>
    <Point X="60" Y="10"/>
  </Points>
</Data>
Run Code Online (Sandbox Code Playgroud)

基本上我想将所有点值读入Point对象数组(我的点对象有2个属性X和Y),MaxCount读成整数.使用C#从XML文件中提取Point值的最佳方法是什么?

谢谢

Arj*_*nbu 8

我建议你看一下XmlSerializer类.它允许您直接将XML序列化和反序列化为对象.

首先,代表您的数据的类:

[XmlRoot(Namespace = "")]
public class Data
{
    public int MaxCount;
    public Point[] Points;
}

public class Point
{
    [XmlAttribute]
    public int X;
    [XmlAttribute]
    public int Y;
}
Run Code Online (Sandbox Code Playgroud)

然后你使用XmlSerializer:

Stream s = ... // Some code to open you file into a stream

var serializer = new XmlSerializer(typeof(Data));
Data d = (Data)serializer.Deserialize(s);
Run Code Online (Sandbox Code Playgroud)

文章:http://msdn.microsoft.com/en-us/library/ms950721.aspx