public bool compareNode(XmlNode node1, XmlNode node2)
{
XmlNodeList node1ChildNodes = node1.ChildNodes;
XmlNodeList node2ChildNodes = node2.ChildNodes;
XmlAttributeCollection node1Attributes = node1.Attributes;
XmlAttributeCollection node2Attributes = node2.Attributes;
if (node1.Name == node2.Name && node1ChildNodes.Count == node2ChildNodes.Count)
{
if (node1Attributes == null && node2Attributes != null || node1Attributes != null && node2Attributes == null )
{
return false ;
}
else if (node1Attributes != null && node2Attributes != null )
{
if (node1Attributes.Count == node2Attributes.Count)
{
int m = 0 ;
if (node1Attributes.Count > 0 )
{
while (m < node1Attributes.Count && node1Attributes.Item(m).Name == node2Attributes.Item(m).Name && node1Attributes.Item(m).Value == node2Attributes.Item(m).Value)
{
m ++ ;
}
if (m < node1Attributes.Count)
{
return false ;
}
}
}
else
{
return false ;
}
}
if (node1ChildNodes.Count == 0 )
{
if (node1.InnerText != node2.InnerText)
{
return false ;
}
}
else
{
int k = 0 ;
while (k < node1ChildNodes.Count && compareNode(node1ChildNodes.Item(k), node2ChildNodes.Item(k)))
{
k ++ ;
}
if (k < node1ChildNodes.Count)
{
return false ;
}
}
return true ;
}
else
{
return false ;
}
}
C# 比较xml文件节点是否相同
最新推荐文章于 2019-03-29 08:09:33 发布