lớp của bạn nên thích như thế này
[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; }
}
Đây là testcode tôi.
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);
}
Nếu bạn muốn đọc tệp văn bản, bạn nên tải tệp vào Tệp tập tin và deserialize tệp này.
using (FileStream fileStream = new FileStream("<PathToYourFile>",FileMode.Open))
{
StepList result = (StepList) serializer.Deserialize(fileStream);
}
[XmlElement ("Bước")] là chìa khóa - để loại bỏ "bước" làm tổ trong XML ( ...) –
avs099
tôi không hiểu. Chắc chắn '[XmlElement (" Bước ")]' là chìa khóa, là đúng. Ý của bạn là "- để xóa" bước "lồng trong XML ( ...)". Cảm ơn bạn! –
dknaack
nó không được cho bạn nhưng đối với những người khác có thể đọc câu trả lời này :) nếu bạn không có [XmlElement] sau đó kết quả XML sẽ là như thế: Name1 name2 . Nó đã cho tôi một thời gian một số thời gian trước đây để tìm ra cách để loại bỏ khối bên ngoài. –
avs099