你的類應該喜歡這樣
[XmlRoot("StepList")]
public class StepList
{
[XmlElement("Step")]
public List<Step> Steps { get; set; }
}
public class Step
{
[XmlElement("Name")]
public string Name { get; set; }
[XmlElement("Desc")]
public string Desc { get; set; }
}
這是我testcode。
string testData = @"<StepList>
<Step>
<Name>Name1</Name>
<Desc>Desc1</Desc>
</Step>
<Step>
<Name>Name2</Name>
<Desc>Desc2</Desc>
</Step>
</StepList>";
XmlSerializer serializer = new XmlSerializer(typeof(StepList));
using (TextReader reader = new StringReader(testData))
{
StepList result = (StepList) serializer.Deserialize(reader);
}
如果你想讀的文本文件,你應該將文件加載到一個FileStream 和反序列化這一點。
using (FileStream fileStream = new FileStream("<PathToYourFile>",FileMode.Open))
{
StepList result = (StepList) serializer.Deserialize(fileStream);
}
[的XmlElement( 「步」)是關鍵 - 刪除 「臺階」 在XML嵌套( ...) –
avs099
我不明白。當然'[XmlElement(「Step」)]'是關鍵,是對的。你的意思是「 - 刪除」step「嵌套在XML中( ...)」。謝謝! –
dknaack
它不是爲你,但別人誰可能來讀這個答案:)如果你沒有[的XmlElement],然後生成的XML將是這樣的:名1 名2 。前段時間我花了一段時間才弄清楚如何去除外部塊。 –
avs099