繁体   English   中英

使用相同的节点名称读取C#中的XML文件

[英]Read XML File in C# with same node name

我需要读取一个具有相同名称节点的XML文件。 无法解决如何完成任务。 我有一类Person,其中包含两个字段:

  1. 是PersonID
  2. HubbyList-Hubbies对象列表

XML:

<group>
  <person>
    <id>1</id>
    <hubby>
      <id>1</id>
    </hubby>
    <hubby>
      <id>2</id>
    </hubby>
    <hubby>
      <id>3</id>
    </hubby>
    <hubby>
      <id>4</id>
    </hubby>
  </person>
  <person>
    <id>2</id>
    <hubby>
      <id>1</id>
    </hubby>
    <hubby>
      <id>2</id>
    </hubby>
  </person>
</group>

首先,从这里获取xml结构模型。

        [XmlRoot(ElementName = "hubby")]
        public class Hubby
        {
            [XmlElement(ElementName = "id")]
            public string Id { get; set; }
        }

        [XmlRoot(ElementName = "person")]
        public class Person
        {
            [XmlElement(ElementName = "id")]
            public string Id { get; set; }
            [XmlElement(ElementName = "hubby")]
            public List<Hubby> Hubby { get; set; }
        }

        [XmlRoot(ElementName = "group")]
        public class Group
        {
            [XmlElement(ElementName = "person")]
            public List<Person> Person { get; set; }
        }

然后,您可以这样做:

        var stringReader = new System.IO.StringReader(System.IO.File.ReadAllText("path"));
        var serializer = new XmlSerializer(typeof(Group));
        var data = serializer.Deserialize(stringReader) as Group;
        // get all hubby of first person 
        var hubbies = data.Person[0].Hubby;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM