如果我的标题听起来令人困惑,我很抱歉。我正在编写一个比较 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和数据信息,这两个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 来解析文件并希望在不导入和安装的情况下使用它更多的图书馆。