[英]Read XML File in C# with same node name
我需要读取一个具有相同名称节点的XML文件。 无法解决如何完成任务。 我有一类Person,其中包含两个字段:
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.