我有两个 XML 文件。两个 XML 文件的结构如下:
<file1>
<table>
<name>...</name>
<columns>
<col>
<name>...</name>
<type>...</type>
<fkey>...</fkey>
</col>
<col>
<name>...</name>
<type>...</type>
<fkey>...</fley>
</col>
<columns>
</table>
<table>
<name>...</name>
<columns>
<col>
<name>...</name>
<type>...</type>
<fkey>...</fkey>
</col>
<col>
<name>...</name>
<type>...</type>
<fkey>...</fley>
</col>
<columns>
</table>
</file1>
两个 XML 文件都有相同的表格,但列数可能不同。我想要做的是比较每个表的每一列并找出类型和 fkey 的差异(如果有的话)。我还想知道第二个 XML 文件中缺少哪些列。我想将此信息保存到另一个文件(可以是任何格式)。
我知道 Perl、PHP 和 JavaScript,但我以前没有使用过 XML。
现在我想知道的是从哪里开始以及使用哪些工具?完成上述任务的最佳方法是什么?是否有任何模块提供在两个 XML 文件之间执行差异的功能?
编辑:我在 Linux 平台 (RedHat) 上工作。
最佳答案
我曾经写过一个模块来做类似的事情(没有优化但它确实为我做了一些事情)
http://ekawas.blogspot.ca/2008/11/comparing-xml-documents-semantically.html
use XML::SemanticCompare;
my $x = XML::SemanticCompare->new;
# compare 2 different files
my $isSame = $x->compare($control_xml, $test_xml);
# are they the same
print "XML matches!\n"
if $isSame;
print "XML files are semantically different!\n"
unless $isSame;
# get the diffs
my $diffs_arrayref = $x->diff($control_xml, $test_xml);
关于php - 比较两个具有相同结构的 XML 文件并找出差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10104846/