0

我在 Windows 服务器上有一个大小为 83,383 KB 的 xml 文件。我使用 MS xml 解析器加载了这个文件,它工作正常。

当我将此文件复制到另一个 Windows 服务器时,文件大小变为 83,392 KB。当我使用 MS xml 解析器加载此文件时,我收到 xml 解析器错误消息:“根级别的数据无效。第 1116371 行,位置 8。 "

我在这里错过了什么?

谢谢阅读!

4

3 回答 3

2

当我将此文件复制到另一台 Windows 服务器时,文件大小变为 83,392 KB。

也许您应该检查一下这里的交易是什么?复制文件不应该改变它。

通过windiff、fc等运行文件。

于 2009-08-14T06:02:39.057 回答
0

我能想到的两个选择:

  1. 您正在使用不同版本的 XML 解析器,其中一个比另一个更严格
  2. 您的文件副本不准确

你是如何复制文件的?如果你拿这两个文件的MD5校验和,它们是一样的吗?

下一个显而易见的事情是查看第 1116371 行中的内容。这是一个简短的 C# 程序,它将向您显示一个大文件的指定行(它假定 UTF-8 编码,但您可以更改它):

using System;
using System.IO;

public class ShowLine
{
    static void Main(string[] args)
    {
        if (args.Length != 2)
        {
            Console.WriteLine("Usage: ShowLine <file> <line>");
            return;
        }
        // TODO: error checking for argument validity
        string file = args[0];
        int lineNo = int.Parse(args[1]);
        using (TextReader reader = File.OpenText(file))
        {
            string line = null;
            for (int i=0; i < lineNo; i++)
            {
                line = reader.ReadLine();
                if (line == null)
                {
                    Console.WriteLine("Not enough lines in file!");
                    return;
                }
            }
            Console.WriteLine(line);
        }
    }
}
于 2009-08-14T06:03:28.557 回答
0

我使用 windows 复制命令复制了 xml 文件。

于 2009-08-14T06:06:46.193 回答