我使用 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 中运行...
如何生成包含所有更改的节点和更改的列表?