如果我的標題聽起來令人困惑,那麼我很抱歉。 我正在寫一個比較2個XML文件的Python腳本。在這兩個文件中,我們都有數據,其id等於其他文件中的數據。比較兩個XML文件並在其中一箇中更新元素
E.g.
源文件:
<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和數據信息之外,這兩個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來解析文件,並且希望在不導入和安裝更多庫的情況下使用它。
我正在使用Minidom,它工作正常。剩下的唯一問題就是我在提取數據後如何編寫這個比較函數。 – Kaly 2012-07-13 13:47:41