2012-04-11 11 views
4

私は2つのXMLファイルを持っています。両方のXMLファイルの構造は次のとおりです。同じ構造の2つのXMLファイルを比較して差分を見つけよう

両方のXMLファイルには同じテーブルがありますが、列の数は異なる場合があります。私がしようとしているのは、各テーブルの各列を比較し、型とfkeyの相違点(もしあれば)を見つけ出すことです。また、どの列が2番目のXMLファイルから抜けているか知りたいです。そして、私はこの情報を別のファイルに保存したい(それはどんなフォーマットでもよい)。

私はPerl、PHP、JavaScriptを知っていますが、以前はXMLで作業していませんでした。

ここで私が知りたいのは、どこから始めるべきか、どのツールを使うかです。上記の作業を行う最善の方法は何でしょうか? 2つのXMLファイル間でdiffを実行する関数を提供するモジュールはありますか?

編集:私はLinuxプラットフォーム(RedHat)で作業しています。

答えて

1

Perlソリューションについては、関連するCPANモジュールを参照してください。 XML::Diffが最も明白で、必要な処理を行っているようですが、それがうまく動作しない場合は、severalがあります。

+0

感謝をするモジュールを書きました。私は仕事を済ませました。 – AnonGeek

+0

「いくつかの」リンクのクイックアップデート:https://www.google.nl/search?q=cpan+xml+diff – Jelmer

2

私は一度似たような(optomizedが、それは私のためにトリックを行うしなかった)リンクについて

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); 
+0

リンクありがとうございます。それは私が正確に望むものではありませんが、それは私を助けるでしょう。 – AnonGeek