0
使用的System.Xml.Serialization我想读如下结构的XML文件:我需要负载从一个XML文件中加载项的数组,但顶层不读列出的项目
<?xml version="1.0" encoding="utf-8"?>
<rootname xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<AListItem>
<someDataItem>1</someDataItem>
<anotherItem>2</anotherItem>
</AListItem>
<AListItem>
<someDataItem>3</someDataItem>
<anotherItem>4</anotherItem>
</AListItem>
<Name>a string</Name>
</rootname>
我的阶级结构:
public class rootname
{
public rootname() { }
[XmlElement("AListItem")]
List<AListItem> DataList { get; set; }
public string Name { get; set; }
}
public class AListItem
{
public AListItem() {}
public string someDataItem { get; set; }
public string anotherItem { get; set; }
}
反序列化:
using (System.IO.FileStream stream = new FileStream(openFile.FileName, FileMode.Open, FileAccess.Read))
{
System.Xml.Serialization.XmlSerializer xml = new System.Xml.Serialization.XmlSerializer(typeof(rootname));
rootname deserializedObject = xml.Deserialize(stream) as rootname;
}
'名称' 属性被加载,但在DataList是 空值。应该如何加载AListItem项目? XmlElement属性是否正确?
你在哪里添加AListItem对象到列表中?也许你应该给我们更多的代码,你如何阅读XML文件? – Thousand 2012-07-09 10:49:18
您需要一个收集节点,例如AListItems。 – 2012-07-09 10:53:27
@托尼霍普金森改变Xml文件结构不是我的选择。 (给出的例子只是一个结构的例子,实际的文件比较复杂,并且是由第三方设备组成的。) – James 2012-07-09 10:57:57