我有这样的事情:
<item name="Whatever">
<Point x="12312" y="24234" />
<Point x="242342" y="2142" />
</item>
如果数组包含名称和点列表,我需要在数组中解析此项。
之前我没有真正使用过xml。
这是我到目前为止的代码
XmlReader reader = XmlReader.Create("Gestures.xml");
while (reader.Read())
{
KnownGestures temp = new KnownGestures();
IList<Point> GesturePath = new List<Point>();
// Only detect start elements.
if (reader.IsStartElement())
{
// Get element name and switch on it.
switch (reader.Name)
{
case "Gesture":
// Detect this element.
temp.GestureName = reader["Name"];
break;
case "Point":
var XValue = reader["X"];
var YValue = reader["Y"];
Point tempPoint = new Point {X = double.Parse(XValue), Y = double.Parse(YValue)};
GesturePath.Add(tempPoint);
temp.GesturePath = GesturePath;
break;
}
GesturesList.Add(temp);
}
}
已编辑
答案 0 :(得分:2)
我发现Linq2Xml更容易使用
var points = XDocument.Load(filename)
.Descendants("Point")
.Select(p => new Point((int)p.Attribute("x"), (int)p.Attribute("y")))
.ToList();