我想我的XML文件轉換爲對象的列表。解析XML反對
private void ReadChangelog()
{
XmlSerializer serializer = new XmlSerializer(typeof(Changelog));
Changelog changelog = (Changelog)serializer.Deserialize(new StringReader("changelog.xml"));
foreach (Release release in changelog.Releases)
{
string version = release.Version;
string date = release.Date;
string changes = release.Changes;
}
}
這是我的changelog類
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
[XmlRoot()]
public class Changelog
{
private Release[] releases;
public Release[] Releases
{
get { return releases; }
set { releases = value; }
}
}
public class Release
{
private string version;
private string date;
private string changes;
[XmlAttribute]
public string Version
{
get { return version; }
set { version = value; }
}
[XmlAttribute]
public string Date
{
get { return date; }
set { date = value; }
}
[XmlAttribute]
public string Changes
{
get { return changes; }
set { changes = value; }
}
}
這是我的XML
<?xml version="1.0" encoding="utf-8" ?>
<Changelog>
<Releases>
<Release>
<Version>1511</Version>
<Date>25-11-2013</Date>
<Changes>
qzdqzdqzdqzdzdzzqefrsrgsrg
</Changes>
</Release>
<Release>
<Version>1510</Version>
<Date>25-11-2013</Date>
<Changes>
Blabqzdzqdqzdqzd
</Changes>
</Release>
<Release>
</Releases>
</Changelog>
但是當我嘗試運行此我得到一個錯誤
InvalidOperationException異常, xml文檔(1,1)包含錯誤。
我在做什麼錯?
您是否嘗試驗證您的XML http://www.w3schools.com/xml/xml_validator.asp? – Marc
請問您最後一個「發佈」需要更緊密? – Sico
當您使用XML提供版本,日期和更改數據的「元素」時,您已經使用XmlAttribute來裝飾該屬性。可以更改XML以將數據作爲「屬性」放在Release元素上,也可以更改定義Release類的方式。 –