我有以下 XML 文件:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<a>
<b attr0="">
<c>
<d attr1="" attr2="">
<e>
<f/>
<g/>
<h/>
<i/>
</e>
</d>
<!-- ...more d's -->
</c>
</b>
<b>
<c>
<d attr1="" attr2="">
<e>
<f/>
<g/>
<h/>
<i/>
</e>
</d>
<!-- ...more d's -->
</c>
</b>
<!-- ...more b's -->
</a>
我想将其反序列化为 C# 对象,我正在使用以下类:
甲类:
[XmlRoot(ElementName = "a")]
public class a
{
[XmlElement("b")]
List<b> bs = new List<b>();
}
b类:
public class b
{
[XmlAttribute("attr0")]
String attr0{ get; set; }
[XmlElement("c")]
c c1 = new c();
}
c类:
public class c
{
[XmlElement("d")]
List<d> ds = new List<d>();
}
d类:
public class d
{
[XmlAttribute(AttributeName = "attr1")]
String attr1{ get; set; }
[XmlAttribute(AttributeName = "attr2")]
String attr2{ get; set; }
[XmlElement("e")]
List<e> es = new List<e>();
}
和 e 类:
public class e
{
[XmlText]
String f { get; set; }
[XmlText]
String g { get; set; }
[XmlText]
String h { get; set; }
[XmlText]
String i { get; set; }
}
并使用以下代码尝试反序列化它:
public a deserialize()
{
XmlSerializer deserializer = new XmlSerializer(typeof(a));
System.IO.TextReader reader = new System.IO.StreamReader(@"C:\file.xml");
object obj = deserializer.Deserialize(reader);
a XmlData = (a)obj;
reader.Close();
return a;
}
好吧,现在没有任何工作。我试图在其上添加一个 XMLArray 标记,但没有奏效。你们会帮我一个大忙,给我一些好的建议:)