【发布时间】:2013-02-23 08:33:49
【问题描述】:
[案例] 我收到了一堆“xml 文件”,其中包含有关其中大量文档的元数据。至少,这是我要求的。我在没有根元素的“xml 文件”中收到了什么,它们的结构是这样的(我省略了一堆元素):
<folder name = "abc"></folder>
<folder name = "abc/def">
<document name = "ghi1">
</document>
<document name = "ghi2">
</document>
</folder>
[问题] 当我尝试读取 XmlTextReader 对象中的文件时,它无法告诉我没有根元素。
[当前解决方法]
当然,我可以将文件作为流读取,附加
[请求的解决方案] 我知道我应该为此使用 XmlTextReader 和 DocumentFragment 选项。但是,这会产生编译时错误:
“System.Xml.XmlException”类型的未处理异常发生在 System.Xml.dll
附加信息:不支持 XmlNodeType DocumentFragment 用于部分内容解析。第 1 行,位置 1。
[错误代码]
using System.Diagnostics;
using System.Xml;
namespace XmlExample
{
class Program
{
static void Main(string[] args)
{
string file = @"C:\test.txt";
XmlTextReader tr = new XmlTextReader(file, XmlNodeType.DocumentFragment, null);
while(tr.Read())
Debug.WriteLine("NodeType: {0} NodeName: {1}", tr.NodeType, tr.Name);
}
}
}
【问题讨论】:
-
您正在使用过时的方法... XmlDataDocuments 自 .NET 4 以来已过时
-
更改了问题,现在使用 XmlTextReader 类。
-
实际上 XmlTextReader 自 .NET 2.0 以来已被弃用。请改用 XmlReader.Create。
-
感谢约翰的提示。没有经验总是很难了解现有程序语言的本质。有用。发布解决方案。
标签: c# xml xmldocument