【问题标题】:Xml diff compare in dotnet core 2.0dotnet core 2.0 中的 XML 差异比较
【发布时间】:2017-11-07 06:19:59
【问题描述】:

我正在 AspNetCore 2.0 中编写一个 MVC webapp,需要识别和定位我生成的 xml 文档中的更改,以便我可以标记更改的元素并确定是否需要次要或主要版本增量。

在寻找如何做到这一点的答案时,我没有找到很多具体的答案。

我找到了旧 XmlDiffPatch 工具的一个端口,但它需要框架并且显然不能在核心上工作。这个类的功能有点稀疏,但非常好和快速,一旦我弄清楚了 diffgram 的结构,我可以轻松地使用它来识别文档中更改的部分。

但是我在想(希望)没有找到很多关于这个主题的帖子的原因可能是这是一项微不足道的任务,没有人愿意写它。

目前执行此任务的最佳 api 是什么?

(corefx 团队将 XmlDiffPatch 引入核心 2.0 的可能性有多大?)

【问题讨论】:

    标签: xml compare asp.net-core-mvc .net-core


    【解决方案1】:

    经过数小时的进一步研究,我得出结论,XmlDiffPatch 具有我最喜欢的功能,我发现如果我安装了.Net framework 1.1,我可以从MS Download 安装工具包,其中包含原始源代码。

    我将 .cs 文件放入一个新的 NetStandard2.0 类库项目中,并且编译的代码没有问题。

    我将一个名为 XmlDiffPatch.Core 的包推送到 NuGet,并为 XmlDiffView(称为 XmlDiffView.Core)做了同样的事情,以便其他人可以使用它。(这些包已在 NuGet 上除名)

    【讨论】:

    • 嗨,你能分享这两个 nuget 包的源代码吗?这将是非常有益的,因为随着时间的推移,它可能会再次丢失
    • 你的包是否也包含 HTML 生成?我发现这在过去非常有用 - 但对于硬编码样式 IIRC,它有点过时了。
    • 非虚拟机!我看到你提到它,但只是没有链接它。我已编辑您的答案以添加链接
    • @henrik 我注意到您的XmlDiffView 版本有GetHtml,但还有一大堆其他方法。 GetHtml 给出的结果与原来的 XmlDiffView 完全不同。它没有对差异进行着色,而是将大量1 放在第三列中,我无法真正弄清楚发生了什么。我必须自己回到源头(Samples\XmlDiffView)才能让它按我的意愿工作。所以我不确定你做了什么 - 但任何其他试图获得彩色差异的人可能也必须这样做。而且我可以在 Win 10 上确认安装 Framework 1.1 工作正常。
    猜你喜欢
    • 2016-09-04
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-11
    • 1970-01-01
    • 2015-08-10
    • 1970-01-01
    相关资源
    最近更新 更多