タイトルが紛らわしくてすみません。2 つの XML ファイルを比較する Python スクリプトを作成しています。両方のファイルに、ID が他のファイルのものと等しいデータがあります。
例えば
ソースファイル:
<id>123456</id>
<data>blabla</data>
......some other data......
<id>abcde</id>
<data>gfkgjk</data>
......some more data..........
対象ファイル:
<id>123456</id>
<data> </data>
......some other data......
<id>ghijk</id>
<data>gfkgjk</data>
......some more data..........
上記の例からわかるように、ソース ファイルにあるすべての ID がターゲット ファイルにもあるわけではありません。さらに、2 つのデータ グループに同じ ID がありますが、一方には「データ」タグが記入されており、もう一方には記入されていません。
私のプログラムは、ソースファイルを見て、id とデータタグ間のテキストを抽出することになっています。次に、ターゲット ファイルを調べて、同じ ID と空のデータ タグ (上記の例のように) を持つデータがある場合、これらの空のタグにソース ファイルからの情報を入力します。(ちなみに、ID とデータ情報を除けば、2 つの XML はまったく異なるため、ソース ファイルだけを保持することはできません)。
そうです、データ タグ間の ID と情報を抽出できました。今、ID を比較し、空のデータ情報がある場合はそれを置き換える関数を作成しようとしています。ただし、私は Python と関数にあまり詳しくないので、助けが必要です。私の関数は次のようになります。
def replace_empty_data():
for x in xmlData_id_source:
if xmlData_id_source==xmlData_id_target:
target = re.sub(xmlData_2,xmlData,target)
return target
file_target.close()
関数に欠落している負荷がある可能性がありますが、何がわかりません。エラーは発生せず、単に機能していません。x 以外の変数はコードの前の部分で定義されているため、これは問題ではありません。
xmlData_id_source はソース ファイルの ID です xmlData_id_target はターゲット ファイルの ID です xmlData_2 はターゲット ファイルのデータ情報です xmlData はソース ファイルのデータ情報です
これまでの入力に感謝しますが、プログラミングについて何も知らない人にとってわかりやすい方法をまだ探しています....ファイルの解析にminidomを使用し、インポートおよびインストールせずに使用したいと思いますさらなるライブラリ。