C#怎的比较两个xml里节点内容的不同(升级用)
C#怎样比较两个xml里节点内容的不同(升级用)
有两个xml文件,结构是完全相同的:
我的思路是要做一个升级程序,判断文件修改时间,然后获得最新的文件名称Name。
其中server.xml是服务器的文件列表,client.xml是客户端的文件信息.
1.如果有相同名称的文件,则比较LDate,取最新的修改时间的文件
2.如果没有相同的文件,则不用对比,直接取服务器里的文件
现在的目的是要得到需要更新的文件有:1.jpg,2.jpg,4.jpg(3.jpg没有更新过则不用更新,4.jpg是新增加的)
------解决方案--------------------
遍历比较 file节点的name相同的 Ldate的值
------解决方案--------------------
遍历比较xml
有两个xml文件,结构是完全相同的:
server.xml
<?xml version="1.0" encoding="utf-8"?>
<FileInfo>
<file>
<Name>1.jpg</Name>
<Ldate>2012-05-01 </Ldate>
</file>
<file>
<Name>2.jpg</Name>
<Ldate>2012-05-02 </Ldate>
</file>
<file>
<Name>3.jpg</Name>
<Ldate>2012-04-02 17:27:56</Ldate>
</file>
<file>
<Name>4.jpg</Name>
<Ldate>2012-05-02 </Ldate>
</file>
<FileInfo>
client.xml
<?xml version="1.0" encoding="utf-8"?>
<FileInfo>
<file>
<Name>1.jpg</Name>
<Ldate>2012-04-01 </Ldate>
</file>
<file>
<Name>2.jpg</Name>
<Ldate>2012-04-02 </Ldate>
</file>
<file>
<Name>3.jpg</Name>
<Ldate>2012-04-02 </Ldate>
</file>
<FileInfo>
我的思路是要做一个升级程序,判断文件修改时间,然后获得最新的文件名称Name。
其中server.xml是服务器的文件列表,client.xml是客户端的文件信息.
1.如果有相同名称的文件,则比较LDate,取最新的修改时间的文件
2.如果没有相同的文件,则不用对比,直接取服务器里的文件
现在的目的是要得到需要更新的文件有:1.jpg,2.jpg,4.jpg(3.jpg没有更新过则不用更新,4.jpg是新增加的)
------解决方案--------------------
遍历比较 file节点的name相同的 Ldate的值
------解决方案--------------------
遍历比较xml
GetXmlData()
{
ArrayList headersubList = new ArrayList();
//获取当前XML文档的根 一级
XmlNode oNode = m_oDom.DocumentElement;
//获取根节点的所有子节点列表
XmlNodeList oList = oNode.ChildNodes;
//标记当前节点
XmlNode oCurrentNode;
//遍历所有二级节点
for (int i = 0; i < oList.Count; i++)
{
//二级
oCurrentNode = oList[i];
//检测当前节点的名称,节点的值是否与已知匹配
if (oCurrentNode.Name.ToLower().Equals("store"))
{
//检测是否有子节点 三级
if (oCurrentNode.HasChildNodes)