当前位置: 首页 > 知识库问答 >
问题:

比较两个xml文件并显示差异

慕意致
2023-03-14

我试图比较两个xml文件并显示差异,如果找到的话。

目前,我正在使用XML Diff来查找差异。

 private bool CheckDifferences(string originalFile, string newFile, ref string difference)
    {
       var diff = new XmlDiff
       {
           IgnoreComments = true,
           IgnorePI = true,
           IgnoreWhitespace = true,
           Algorithm = XmlDiffAlgorithm.Precise
       };

        var sw = new StringWriter();
        var writer = new XmlTextWriter(sw);
        writer.Formatting = Formatting.Indented;

        var originalReader = new XmlTextReader(new StringReader(originalFile));
        var modifiedReader = new XmlTextReader(new StringReader(newFile));
        var status = diff.Compare(originalReader, modifiedReader, writer);

        difference = sw.ToString();
        writer.Close();
        originalReader.Close();
        modifiedReader.Close();

        return status;
    }
<catalog>
   <book id="bk11">
      <author>AuthorName1</author>
   </book>
</catalog> 
<catalog>
   <book id="bk11">
      <author>AuthorName2</author>
   </book>
</catalog> 

也查看了xnode.deepeQuals,但它也返回是否有任何区别。但不是什么区别。

任何帮助都很感激

共有1个答案

曾奇略
2023-03-14

compare方法只返回truefalse,但是通过查看文档,差异将作为XML文档写入diffgram编写器(用于XML修补)。因此,您总是可以解释该文档,并以您想要的方式显示更改。

 类似资料:
  • 我试图比较两个XML文件。我的要求是比较新旧xml文件,如果有任何差异,将其合并到新的xml文件中。 但我也想要差异。请告诉我怎样才能得到不同之处。 我已经尝试过XMLUnit,但我不想使用它。

  • 我正在构建一个swing应用程序,它将在左边有一个项目列表,在右边有一个表。右侧显示的表数取决于左侧选择的项。我希望能够“突出显示”(setBackground)显示所有表中相同的所有行。 我读过关于重写prepareRenderer或GetTableCellRendererComponent的文章。然后,条件呈现逻辑位于重写的方法中。 DefaultTableCellRenderer GetTa

  • 问题内容: 我需要比较两个CSV文件并在第三个CSV文件中打印出差异。在我的情况下,第一个CSV是一个名为old.csv的哈希表的旧列表,第二个CSV是包含新旧哈希表的新哈希表。 这是我的代码: 第三个文件是旧文件的副本,而不是更新文件。怎么了 ?我希望你能帮助我,非常感谢! PS:我不想使用diff 问题答案: 问题在于您正在将中的每一行与中的同一行进行比较。只要一个文件中有多余的一行,您就会发

  • 问题内容: 不同长度的2个未排序文本文件如何可以是由侧显示侧 (在列) 在一个 给定和: 显示: 几乎可以解决问题,但是并不能很好地对齐列,因为它仅在列1和列2之间打印一个标签。 我知道如何使用emacs和vim做到这一点,但希望将输出显示为stdout以用于管道等。 我想出的解决方案使用,然后通过管道进行sed删除,以增加输出。 我可以创建一个函数并将其粘贴在我的函数中,但是肯定已经存在一个命令

  • 有人请建议我一个工具来比较两个文本文件和保存第二个文本文件的差异。 例