[英]How to serialize xml to class with list
我有这个XML
<KitContent>
<MsiData>
<FileName>file1</FileName>
<BaseProductVersion>1.1.0.0</BaseProductVersion>
</MsiData>
<MsiData>
<FileName>file2</FileName>
<BaseProductVersion>1.1.0.0</BaseProductVersion>
</MsiData>
</KitContent>
我想将其序列化为一个类,该类应如何显示?
public class KitContent
{
public List<MsiData> ???? { get; set; }
public KitContent()
{
??? = new List<MsiData>();
}
}
public class MsiData
{
public string FileName { get; set; }
public string BaseProductVersion { get; set; }
}
}
'???' 我在上面的课里是我的问题
我不确定你想要什么,但是??? 可以是任何标识符。 如果要将这个xml解析为C#类,恕我直言,最好的方法是使用Xml.Serialization命名空间。
这是示例:
class Program
{
static void Main(string[] args)
{
string xml = "<KitContent>" +
"<MsiData>" +
"<FileName>file1</FileName>" +
"<BaseProductVersion>1.1.0.0</BaseProductVersion>" +
"</MsiData>" +
"<MsiData>" +
"<FileName>file2</FileName>" +
"<BaseProductVersion>1.1.0.0</BaseProductVersion>" +
"</MsiData>" +
"</KitContent>";
XmlSerializer serializer = new XmlSerializer(typeof(KitContent));
KitContent kitContent = (KitContent)serializer.Deserialize(XmlReader.Create(new StringReader(xml)));
Console.WriteLine(kitContent.anyIdentifier[0].FileName);
Console.WriteLine(kitContent.anyIdentifier[0].OtherName);
Console.WriteLine(kitContent.anyIdentifier[1].FileName);
Console.WriteLine(kitContent.anyIdentifier[1].OtherName);
}
}
[XmlRoot("KitContent")]
public class KitContent
{
[XmlElement("MsiData")]
public List<MsiData> anyIdentifier { get; set; }
}
public class MsiData
{
public string FileName { get; set; }
[XmlElement("BaseProductVersion")]
public string OtherName { get; set; }
}
如果您的属性名称与xml中的Element相同,则无需将属性放在该属性上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.