Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;如果;及;否则";C#输出不正确_C#_Xml - Fatal编程技术网

&引用;如果;及;否则";C#输出不正确

&引用;如果;及;否则";C#输出不正确,c#,xml,C#,Xml,我有一个将xml文件与文本文件进行比较的应用程序,如果xml的特定行的内容与文本文件相同,程序将输出1,但如果它们不同,则输出0。不幸的是,我无法将其输出到1。它似乎总是输出一个0 代码: XML文件(程序应该只读取数据部分): 当我执行Console.WriteLine(fileString)时 或 不过,它们确实输出了相同的内容,这让我更加困惑。很可能您的文本文件也包含换行符号,从而使字符串不同。如何确保file.ReadAllText确实只返回一个字符?首先,为了调试的目的输出它,或者修剪

我有一个将xml文件与文本文件进行比较的应用程序,如果xml的特定行的内容与文本文件相同,程序将输出1,但如果它们不同,则输出0。不幸的是,我无法将其输出到1。它似乎总是输出一个0

代码:

XML文件(程序应该只读取数据部分):

当我执行
Console.WriteLine(fileString)时


不过,它们确实输出了相同的内容,这让我更加困惑。

很可能您的文本文件也包含换行符号,从而使字符串不同。

如何确保file.ReadAllText确实只返回一个字符?首先,为了调试的目的输出它,或者修剪它。

我测试了你的代码,我发现当

<Data>
  <Seperator>1</Seperator>
</Data>

1.

<Data>
  <Seperator>0</Seperator>
</Data>

0
完全合法和正确的输出


您是否尝试删除项目的BIN文件夹的内容?然后重新生成项目,并确保文本文件和xml文件属性设置为“如果较新,则复制”或“始终复制”,前提是这些文件是项目的一部分。

我已经测试了您的代码,它工作正常,唯一的原因可能是您的文本文件在1之后包含新行。您可以尝试在if语句之前删除新行。使用

fileString = fileString.Replace(Environment.NewLine,"");
  if(....) //your if

您是否已附加调试器以查看?谢谢!真不敢相信我竟然没有意识到这一点。
Console.WriteLine(xmlString);
<Data>
  <Seperator>1</Seperator>
</Data>
<Data>
  <Seperator>0</Seperator>
</Data>
fileString = fileString.Replace(Environment.NewLine,"");
  if(....) //your if