我有以下 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 标记,但没有奏效。你们会帮我一个大忙,给我一些好的建议:)