Windows phone 7 基于值解析xml

Windows phone 7 基于值解析xml,windows-phone-7,Windows Phone 7,嗨,我的xml是这样的 <?xml version="1.0" encoding="utf-8" ?><people> <person> <key>title</key> <details>Kate</details> <contact>Smith</contact> <age>27</age> <key>chil

嗨,我的xml是这样的

<?xml version="1.0" encoding="utf-8" ?><people>
<person>
    <key>title</key>
    <details>Kate</details>
    <contact>Smith</contact>
    <age>27</age>
    <key>childnodes</key>
 <person>
     <key>All</key>
     <details>Details</details>
     <contact>900033</contact>
      <details>Adress</details>
      <contact>housenumber</contact>
  </person>
</person>
<person>
    <key>title</key>
    <contact>Manu</contact>
    <age>30</age>
    <key>childnodes</key>
 <person>
     <key>subnode</key>
     <details>Details</details>
     <contact>Premraj</contact>
      <details>Gandhinagar</details>
      <contact>888444</contact>
  </person>
</person>
<person>
    <details>Ann</details>
    <contact>Peterson</contact>
    <age>27</age>
</person>
</people>

标题
凯特
史密斯
27
子节点
全部的
细节
900033
地址
门牌号
标题
马努
30
子节点
子节点
细节
普雷姆拉吉
甘地那格
888444
安
彼得森
27

我想用两种方式解析xml,即如果键包含“childnodes”,即(“childnodes”),则将数据添加到列表框或列表中,如果没有“childnodes”将值添加到listbox1或list1。问题是我必须检查节点键是否包含子项。如果您知道解决方案,请帮助我首先,您的XML无效。您缺少一个
结束标记以及
。此外,考虑到您如何处理chid条目,该结构非常糟糕。应该是这样的:

<people>
  <person>
    <name>title</name>
    <address>Kate</address>
    <phone>Smith</phone>
    <age>27</age>
    <children>
      <person>
        <name>sub</name>
        <address>Details</address>
        <phone>900033</phone>
      </person>
    </children>
  </person>
  <person>
    <name>title</name>
    <phone>Manu</phone>
    <age>30</age>
    <children>
      <person>
        <name>AnotherName</name>
        <address>Details</address>
        <phone>900033</phone>
      </person>
    </children>
  </person>
</people>
[XmlRoot("people")]
public class People
{
    [XmlElement("person")]
    public List<Person> RegisteredPeople { get; set; } 
}

public class Person
{
    [XmlElement("name")]
    public string Name { get; set; }
    [XmlElement("address")]
    public string Address { get; set; }
    [XmlElement("phone")]
    public string Phone { get; set; }

    [XmlArray("children")]
    [XmlArrayItem("person")]
    public List<Person> Children { get; set; }
}
XmlSerializer serializer = new XmlSerializer(typeof(People));
StringReader reader = new StringReader(YOUR_XML);
People p = (People)serializer.Deserialize(reader);