簡體   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