相关疑难解决方法(0)

读取 XmlTextReader 对象中的“假”xml 文档(xml 片段)

[案例] 我收到了一堆“xml 文件”,其中包含有关大量文档的元数据。至少,这是我所要求的。我收到的“xml 文件”没有根元素,它们的结构如下(我遗漏了一堆元素):

<folder name = "abc"></folder>
<folder name = "abc/def">
<document name = "ghi1">
</document>
<document name = "ghi2">
</document>
</folder>
Run Code Online (Sandbox Code Playgroud)

[问题] 当我尝试读取 XmlTextReader 对象中的文件时,它无法告诉我没有根元素。

[当前解决方法] 当然,我可以将文件作为流读取,附加 < xmlroot> 和 </ xmlroot> 并将流写入新文件并在 XmlTextReader 中读取该文件。这正是我现在正在做的,但我不想“篡改”原始数据。

[请求的解决方案] 我知道我应该使用 XmlTextReader 来实现此目的,并带有 DocumentFragment 选项。但是,这会产生编译时错误:

System.Xml.dll 中发生“System.Xml.XmlException”类型的未处理异常

附加信息:部分内容解析不支持 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: …
Run Code Online (Sandbox Code Playgroud)

c# xml xmldocument

3
推荐指数
1
解决办法
4656
查看次数

标签 统计

c# ×1

xml ×1

xmldocument ×1