如何创建要序列化的类以具有此输出XML

时间:2015-11-06 07:03:04

标签: c# xml serialization

<Root>
    <Apple Clr="RedViolet">1</Apple>
    <Apple Clr="RedOrange">3</Apple>

    <AppleGroup Clr="Red">
        <Apple Clr="LightRed">4</Apple>
        <Apple Clr="DarkRed">12</Apple>   
        <Apple Clr="MediumRed">10</Apple>
    </AppleGroup>
    <AppleGroup Clr="Red">
        <Apple Clr="LightRed">4</Apple>
        <Apple Clr="DarkRed">12</Apple>   
        <Apple Clr="MediumRed">10</Apple>
    </AppleGroup>
</Root>

之前我已经序列化了一个类,但仅用于简单和直接的类序列化。我对此一无所知:(

2 个答案:

答案 0 :(得分:1)

您需要3个单独的课程 整个XML的第一个:

[Serializable ()]
[XmlRoot ( "Root" )]
public class XmlRootClass{
    [XmlElement ( "Apple" )]
    public List<Apple> apples{
        get;
        set;
    }

    [XmlElement ( "AppleGroup " )]
    public List<AppleGroup> applegroups{
        get;
        set;
    }
}

Apple的第二个

[Serializable ()]
public class Apple{
    [XmlAttribute("Clr")]
    public string color{
        get;set;
    }

    [XmlText]
    public string Text{
        get;set;
    } 
}

和苹果集团的第三个

[Serializable ()]
    public class AppleGroup{
    [XmlAttribute("Clr")]
    public string color{
        get;set;
    }

    [XmlElement ( "Apple" )]
    public List<Apple> apples{
        get;
        set;
    } 
}

答案 1 :(得分:1)

您可以使用Visual Studio功能从任何Xml数据创建Serializable类。 首先,您必须复制要为其创建课程的Xml数据,然后选择菜单 - &gt;选择性粘贴 - &gt;将Xml粘贴为类

在某些情况下,这非常方便且有用。我不确定这会满足您目前的需求,但这可能会对您有所帮助。

enter image description here