【发布时间】:2014-11-07 15:44:00
【问题描述】:
我需要反序列化一个如下所示的 XML 文档:
<Root>
<Items>
<Item>
<ItemHeader Attr1="A" Attr2="B" Attr3="C" />
<ItemDetails Attr4="D" Attr5="E" />
</Item>
...
</Items>
</Root>
进入一个看起来像这样的类:
[Serializable, XmlRoot("Item")]
Public class MyItem
{
[XmlAttribute("Attr1")]
public string Attr1 { get; set; }
[XmlAttribute("Attr5")]
public string Attr5 { get; set; }
}
我正在使用以下代码来执行反序列化:
XDocument doc;
XElement rootElem = doc.Element("Root");
foreach (XElement xe in rootElem.Descendants("Item"))
{
MyItem item = new MyItem();
XmlSerializer xmlSerializer = new XmlSerializer(typeof(MyItem));
XmlReader xRdr = xe.CreateReader();
item = (MyItem)xmlSerializer.Deserialize(xRdr);
}
但是,没有任何元素被复制到对象实例中。
这可行吗?我需要反序列化每个子元素吗?
谢谢
【问题讨论】:
标签: c# xml serialization