我一直在使用XDocument和LINQ to XML来加载xml文件并填充我的类。使用XMLReader读取大型XML文档以将信息解析到类中
但现在我的任务是确保我的程序可以处理所有大小的XML文档,这意味着我需要使用XML读取器,此时我无法绕过操纵XMLReader来填充我的课程。
目前,我有下面的类来填充:
public class DataRecord
{
private List<Fields> field = new List<Fields>();
public string ID { get; set; }
public string TotalLength { get; set; }
public List<Fields> MyProperty
{
get { return field; }
set { field = value; }
}
}
internal class Fields
{
public string name { get; set; }
public string startByte { get; set; }
public string length { get; set; }
}
}
我一直在试图switch语句来执行的XMLReader从我这里提供的数据来填充类。例如:
using (XmlReader reader = XmlReader.Create(filename))
{
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element:
switch (reader.Name)
{
case "DataRecord":
var dataaa = new dataclass.DataRecord();
break;
}
break;
}
}
}
但正如我所说,这是一个例子,我已经寻找年龄,试图找到一个答案,但我越来越糊涂了。希望有人能帮助我们解决我的问题。
你正在尝试创建*一个*你的类的实例,还是大量的实例?单个实例的每个元素是否相当小? (您可以将XmlReader和LINQ结合到XML中,但不知道这些问题的答案,这将很难提供建议。) – 2013-04-04 16:26:15
我几乎可以听到'Jon Skeet' .. .. – MethodMan 2013-04-04 16:26:52
LINQ to XML支持流式传输。请参阅http://msdn.microsoft.com/en-us/library/system.xml.linq.xstreamingelement.aspx – 2013-04-04 19:45:31