在列表对象中返回以下层次结构,因此它应包含其子xElement的列表(嵌套列表)内的列表[关闭]

问题描述 投票:-1回答:1
<root>
    <child id="1">
       <child1 id="1"/>
       <child2>
           <child11 id="1">
               <child111 id="1"/>
           </child11>
    </child2>
   </child>
    <child id="2">
       <child1 id="2"/>
    </child>
</root>

我如何使用反序列化获得上述确切的结构

c# xml xsd xml-serialization xsd2code
1个回答
1
投票
您可以大致将上述实体形式化:

using System; using System.Xml.Serialization; using System.Collections.Generic; namespace WorkingProject { [XmlRoot(ElementName="child1")] public class Child1 { [XmlAttribute(AttributeName="id")] public string Id { get; set; } } [XmlRoot(ElementName="child111")] public class Child111 { [XmlAttribute(AttributeName="id")] public string Id { get; set; } } [XmlRoot(ElementName="child11")] public class Child11 { [XmlElement(ElementName="child111")] public Child111 Child111 { get; set; } [XmlAttribute(AttributeName="id")] public string Id { get; set; } } [XmlRoot(ElementName="child2")] public class Child2 { [XmlElement(ElementName="child11")] public Child11 Child11 { get; set; } } [XmlRoot(ElementName="child")] public class Child { [XmlElement(ElementName="child1")] public Child1 Child1 { get; set; } [XmlElement(ElementName="child2")] public Child2 Child2 { get; set; } [XmlAttribute(AttributeName="id")] public string Id { get; set; } } [XmlRoot(ElementName="root")] public class Root { [XmlElement(ElementName="child")] public List<Child> Child { get; set; } } }

© www.soinside.com 2019 - 2024. All rights reserved.