我使用微软的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并遍历节点,但我并不真正理解这里的match-attribute。
XDocument xmlDifffDoc = XDocument.Load(reader);
var allNodes = xmlDifffDoc.Descendants();
foreach (XElement e in allNodes)
{
if (e.Name.LocalName == "change")
{ ...我不能使用XMLDiffView,因为代码在UnitTest中运行...
如何生成包含所有已更改的节点和更改的列表?
发布于 2021-06-13 02:08:43
下面是关于xmldiff输出的文档,特别是它的Match属性:https://documentation.help/Microsoft-XML-Diff/xmldiff_conceptual_029f.htm
注意:我真的不喜欢包含链接,但这个问题足够模糊,在这种情况下,这是最好的回答方式,可能会省去某人查找这些文档的麻烦。
https://stackoverflow.com/questions/57671467
复制相似问题