使用XmlDiff比较2个xml文件时,为什么会出现“路径中的非法字符”?

时间:2011-11-27 01:38:01

标签: c# xml

我在尝试将2个xml文件与Microsoft的XmlDiff库进行比较时遇到问题。

我正在使用一个重载函数,它将2 xmls传递为字符串:

xmldiff = new XmlDiff(XmlDiffOptions.IgnoreChildOrder | XmlDiffOptions.IgnorePrefixes | XmlDiffOptions.IgnoreNamespaces);
bool identical = xmldiff.Compare(first, last, false);

其中firstlast或多或少看起来像这样:

<?xml version="1.0" encoding="ISO-8859-1"?>
<breakfast_menu>
    <food>
        <name>Belgian Waffles</name>
        <price>$5.95</price>
        <description>two of our famous Belgian Waffles with plenty of real maple syrup</description>
        <calories>650</calories>
    </food>
    <food>
        <name>Strawberry Belgian Waffles</name>
        <price>$7.95</price>
        <description>light Belgian waffles covered with strawberries and whipped cream</description>
        <calories>900</calories>
    </food>
</breakfast_menu>

我收到此错误

enter image description here

编辑:

好吧,我认为这是我的问题 - 我传递了文件的全部内容,而不仅仅是其路径或URL(如文档中所示)。所以现在我有另一个问题 - 当我在文件中包含文件内容时,如何使用此重载 - public Boolean Compare(XmlReader, XmlReader)或此public Boolean Compare(XmlNode, XmlNode)

2 个答案:

答案 0 :(得分:1)

您希望将文件路径传递给Compare,而不是xml字符串。

答案 1 :(得分:0)

什么类型是第一个还是最后一个?他们是文件路径吗?还是字符串? 我注意到你的XML字符串上的编码使用的是代码页:encoding =“ISO-8859-1” 另一个XML'是'使用相同的编码吗?

如果'first'和'last'是文件路径:也许这是你传递给文件的文件的路径?我在解析一些文件时遇到过一次。我在文件名中有一个额外的空格。 我没有帮助我在一个小字体的IDE中编程,我需要新的眼镜,我坐在离显示器3英尺的地方。 这使得查看文件名中的微小空间成为一个错误。