【发布时间】:2013-04-04 16:22:17
【问题描述】:
我一直在使用 XDocument 结合 LINQ to XML 来加载 xml 文件并填充我的类。
但是现在我的任务是确保我的程序可以处理所有大小的 XML 文档,这意味着我需要使用 XML Reader,而此时我无法控制 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; }
}
}
我一直在尝试切换语句以强制 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 to XML 结合使用,但如果不知道这些问题的答案,将很难为您提供建议。)
-
我几乎可以听到附近的
Jon Skeet.. -
LINQ to XML 支持流式传输。见msdn.microsoft.com/en-us/library/…
-
@Jon Skeet 我要说很多实例,xml 中的每个数据记录都应该是一个新类。类本身的设置正是为了表示 xml 结构。