2012-03-12 29 views
3

2つの小さなxmlファイルを階層的差分にしようとしています。2つのxmlファイルの階層的差分を表示する

(clojure.data/diff (clojure.xml/parse "file1.xml") (clojure.xml/parse "file2.xml")) 

clojure.data/diffは前と後が返されますが、それはXML構造を維持しません(なし:タグは要素)と、前と後にはできません簡単にClojure.data/diffは近い私を取得していますxmlに変換する(clojure.xml/emitを使用するなど)。

clojureで2つのxmlファイルに対して階層差分を実行するにはどうすればよいですか?

答えて

0

これはclojure.dataの拡張要求のようです。 jiraページで問題を開いてください。

http://dev.clojure.org/jira/browse/CLJ

さらに良く、それはパッチが含まれている場合

+0

私はバグではないと確信していますが、clojure.data/diffはxmlファイルで何をしようとしているのか正確には修正できません。違いが何であるかを正確に教えてくれますが、xmlに簡単に変換できる構造を維持しています。 :タグキーは、両方のファイルがそれを持っているときの違いには現れません。タプルの最後の項目にしか終りません。これは技術的には正しいですが、私にとってXML構造、特にタグ名に関する情報は失われます。 –

+1

申し訳ありませんが、私は:タグはどこにドロップされ、正しくは分かれていないと仮定していました。したがって、これはより高度な要求に似ています。 –

+0

ya、私はまだそれにアプローチする方法を考えています。ここでの目標は、削除されたもの、追加されたもの、更新されたもの(ツリーのどこにあるものか)を正確に判断するために2 xmlファイルに階層的差分を加えることです。 –

1

XMLUnitは、XMLの差分のためのスタンドアローンのメソッドを持っている(最初のcontrib契約を締結)。ライブラリをインクルードし、Clojureから呼び出すことができます。

関連する問題