【发布时间】:2013-05-21 15:05:02
【问题描述】:
我正在实现一个在计算机之间同步文件的客户端-服务器程序。 在某些时候,当客户端连接到服务器时,一个包含必须与服务器同步的位置的目录结构的 XML 文件被发送到服务器。 如果客户端不是第一次连接,则服务器上存在这样的XML文件,因此必须找到这两个文件之间的差异,并且客户端仅请求已更改或新文件的文件。 我的问题是......我怎样才能找到 XML 之间的差异。 我有 2 个 XML 样本(一个 XML 可以有和 1Gb)。
第一个 XML (source.xml):
<?xml version='1.0'?>
<RootDirectory name="New folder" dateCreated="5/20/2013 7:16:32 PM">
<Folder name="New folder1" >
<File name="New Text Document11.txt" />
<File name="New Text Document12.txt" />
</Folder>
<File name="New Text Document1.txt" />
</RootDirectory>
第二个 XML (changed.xml):
<?xml version="1.0" encoding="UTF-8"?>
<RootDirectory name="New folder" dateCreated="5/20/2013 7:15:50 PM">
<Folder name="New folder1">
<File name="New Text Document11.txt" />
<File name="New Text Document12.txt" />
</Folder>
<Folder name="New folder2">
<Folder name="New folder21">
<File name="New Text Document211.txt" />
<Folder name="New folder211">
<File name="New Text Document2111.txt" />
<Folder name="New folder2111">
<File name="New Text Document21111.txt" />
</Folder>
</Folder>
</Folder>
<File name="New Text Document21.txt" />
</Folder>
<File name="New Text Document1.txt" />
</RootDirectory>
我找到了一个使用LinQ to XML的例子http://www.codeproject.com/Articles/45233/Diff-in-XML-files-with-LINQ,但是那里使用的XML结构不同,对我帮助不大。
鉴于我可以将标签 Folder 和 File 嵌套在其他节点内..我真的不知道如何找到差异...
谁能给我一个想法?
谢谢!
最好的问候, 奥娜
【问题讨论】:
标签: linq-to-xml xmldiff