2つのXMLファイルを比較したいと思います。 両方が同じ構造を持つ場合は簡単に見えます。しかし、ではない私の場合:( 私のファイルのようになります。タスクのみを比較するためXML比較ツールC#
ある
<root> <t> <child1> <cc1>val</cc1> <cc2>val</cc2> ...... </child1> <child2> <cc1>val</cc1> <cc2>val</cc2> ...... </child2> <child2> <cc1>val</cc1> <cc2>val</cc2> ...... </child2> ....... <child3> <cc1>val</cc1> <cc2>val</cc2> ...... </child3> .... </t> <t> ... </t> ..... </root>
そして、彼らはCHILDES、およびCHILDESのCHILDESの任意の番号を持っている可能性が... (この例ではchild1.cc1.value)
比較の間に、いくつかのノードをスキップすることができます(スキップされたノードの名前は、たとえばどこかに格納されています)。文字列配列)
同じ複数のノードを持つことは可能です。 child2が無視されない場合、それらが同じ量であることを確認する必要があり、それらはすべて対応する第2ファイルと一致します。だから、次のような状況があるかもしれません:
第一のファイルが含まれます。
<child2><cc1>2</cc1>...</child2>
<child2><cc1>1</cc1>...</child2>
<child2><cc1>3</cc1>...</child2>
をそして、それは彼らが互いに対応であることを意味します:
<child2><cc1>1</cc1>...</child2>
<child2><cc1>3</cc1>...</child2>
<child2><cc1>2</cc1>...</child2>
2STファイルが含まれています。 それで、彼らはランダムな順序になる可能性があります。
今、このアルゴリズムを実現する方法を決定することはできません。私はDataSetオブジェクトを使用することを提案しましたが、このXML構造はDataTables、dataRowsなどを使用するだけではあまりにも困難です。
今はXmlNodesを試しています。しかし、私はランダムな順序で異なるデータを持ついくつかの同一のノードを持つ部分を認識していません。
アイデア?
>> '<子ID = "1">、<子ID =」...はるかXMLesqueは、本質的に、おそらく
<child1>
と<child2>
されているのと同じタイプのノードのとして<child id="1">
、<child id="2">
などを持っているだろう2 ">' ああ、もし私が選択することができます... しかし、あなたのアイデアは非常にきれいです!少なくとも私はそれが好きで、私は試してみます。 – Ksice@Ksice私はそれがとてもきれいだとは思わないでしょう!しかし、XML文書の整合性を検証するために同様のコードを使用しました。クラスに分割することで、あなたの心の中の問題も明確にすることができます。 btw上記のコードは完全にテストされていない - いくつかの微調整が必要な場合があります:) –