【问题标题】:c#: Understanding and consuming XMLDiff difference-Filec#:理解和消费XMLDiff差异-File
【发布时间】:2019-08-27 09:20:48
【问题描述】:

我使用 Microsoft 的 XMLDiff Api 比较两个 Xml 文件。

现在我想解释比较的输出文件并将其总结为一些简单的输出

XML 输出:

<?xml version="1.0" encoding="utf-8"?>
<xd:xmldiff version="1.0" srcDocHash="2653891925157739686" options="IgnoreChildOrder IgnoreNamespaces IgnorePrefixes " fragments="no" xmlns:xd="http://schemas.microsoft.com/xmltools/2002/xmldiff">
  <xd:node match="2">
    <xd:node match="6">
      <xd:node match="1">
        <xd:node match="2">
          <xd:node match="1">
            <xd:change match="@timestamp">8/27/2019 9:40:57 AM</xd:change>
          </xd:node>
        </xd:node>
        <xd:node match="1">
          <xd:node match="1">
            <xd:change match="@timestamp">8/27/2019 9:40:57 AM</xd:change>
          </xd:node>
        </xd:node>
        <xd:node match="3">
          <xd:node match="1">
            <xd:change match="@timestamp">8/27/2019 9:40:57 AM</xd:change>
          </xd:node>
        </xd:node>
        <xd:node match="4">
          <xd:node match="1">
            <xd:change match="@timestamp">8/27/2019 9:40:57 AM</xd:change>
          </xd:node>
        </xd:node>
      </xd:node>
    </xd:node>
    <xd:node match="1">
      <xd:node match="4">
        <xd:node match="1">
          <xd:node match="1">
            <xd:change match="@pageNr">fb5675f0-5178-4187-b878-6135a7e587ad</xd:change>
          </xd:node>
        </xd:node>
      </xd:node>
    </xd:node>
    <xd:node match="4">

现在我想获取 XML 中的所有更改并将它们列在 Collection 中:

我尝试使用 XDocument 并遍历节点,但我不太了解这里的匹配属性。

  XDocument xmlDifffDoc = XDocument.Load(reader);

        var allNodes = xmlDifffDoc.Descendants();

        foreach (XElement e in allNodes)
        {
            if (e.Name.LocalName == "change")
            { ...

我无法使用 XMLDiffView,因为代码在 UnitTest 中运行...

如何生成包含所有更改的节点和更改的列表?

【问题讨论】:

    标签: c# xmldiff


    【解决方案1】:

    xmldiff 输出的文档,特别是它的 Match 属性在这里:https://documentation.help/Microsoft-XML-Diff/xmldiff_conceptual_029f.htm

    注意:我真的不喜欢包含链接,但问题很模糊,在这种情况下,这是最好的回答方式,并且可以省去查找这些文档的麻烦。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-20
      • 1970-01-01
      • 2015-12-02
      • 1970-01-01
      • 1970-01-01
      • 2015-06-05
      • 1970-01-01
      相关资源
      最近更新 更多