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

时间:2018-11-03 10:44:58

标签: c# xml

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

  1. 人名
  2. HubbyList-中心对象列表

XML:

ovs-ofctl: 12-: missing '->'

1 个答案:

答案 0 :(得分:0)

首先,从here获取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;