我们在比较两个xml文件时存在严重的问题。我们需要根据关键值找出两个xml文件之间的差异。我们需要xml标记和xml标记值的差异。键值可以存在于文件中的不同位置。例如,下面是两个xml文件示例,其中id是学生的键。首先存在StudentDetails_one.xml文件ID 111,但是在StudentDetails_two.xml中存在id 222第一。XML文件差异
StudentDetails_one.xml
<Student>
<Id>111</Id>
<Name>AAA</Name>
<City>ABCD</City>
<Dept>CS</Dept>
<Mobile Number>11111</Mobile Number>
</Student>
<Student>
<Id>222</Id>
<Name>BBB</Name>
<City>ABCD</City>
<Dept>IT</Dept>
<Mobile Number>22222</Mobile Number>
</Student>
StudentDetails_two.xml
<Student>
<Id>222</Id>
<Name>CCC</Name>
<City>ABCD</City>
<DEPT>IT</DEPT>
<Mobile Number>22222</Mobile Number>
</Student>
<Student>
<Id>111</Id>
<Name>AAA</Name>
<City>ABCD</City>
<Dept>CS</Dept>
<Mobile Number>11111</Mobile Number>
</Student>
的下面两点不同可以在上面2个文件被注意到。
- 学生ID 222具有在两个不同名称值这2个XML files.In先向其BBB和在第二个文件中它的CCC。
- 学生ID 222的xml标记控制差异为部门在第一个文件中并且DEPT在第二个文件中。
有什么工具或技术可以找出上述两点区别吗?
注:以上一个仅仅是一个example.We有XML文件与数百tags.So它真的很难找出区别的学号位置是在这两个文件的不同
对于标签匹配,您可以将它们小写;如果他们然后匹配小写明智的话,你可以用原始形式对照他们。如果他们然后不同它是一个拼写错误的副本。最好使用API读取XML结构为对象/字典/数组类型,以便您可以遍历它们并查看是否存在与TAG或VALUE不同的ID重复项。不应该那么辛苦。你更喜欢什么脚本/编程语言? – 2013-03-22 11:35:24
嗨Allendar..nice info..thanks..i一般使用C++语言.. – user2090833 2013-03-22 14:12:16
你可以做一些在C++中的XML解析器的研究(例如:http://stackoverflow.com/questions/170686/best-open-xml -parser换-C)。你主要需要的是将XML从解析器读出到多维数组中。从这一点开始,你可以通过该数组做循环(+内循环),并检查是否有冲突的匹配。根据这些冲突,您可以编写一个合并输出(再次通过XML解析器),并将其写入新的XML文件以及发现/更改/合并(执行一些人工验证)的报告。 – 2013-03-22 14:16:31