要比较两个具有相同节点和属性的XML字符串,并使用新字符串更新旧字符串的值,可以使用Python的xml.etree.ElementTree模块。下面是一个示例代码:
import xml.etree.ElementTree as ET
# 定义旧XML字符串
old_xml = """
old_value1
old_value2
"""
# 定义新XML字符串
new_xml = """
new_value1
new_value2
"""
# 解析旧XML字符串
old_root = ET.fromstring(old_xml)
# 解析新XML字符串
new_root = ET.fromstring(new_xml)
# 遍历节点
for old_node, new_node in zip(old_root.iter(), new_root.iter()):
# 如果节点名称和属性都相同
if old_node.tag == new_node.tag and old_node.attrib == new_node.attrib:
# 更新旧节点的值为新节点的值
old_node.text = new_node.text
# 将更新后的旧XML字符串输出
updated_xml = ET.tostring(old_root).decode()
print(updated_xml)
这段代码首先定义了旧XML字符串和新XML字符串,然后通过ET.fromstring
方法解析它们。然后,使用iter
方法遍历旧根节点和新根节点的子节点。如果节点名称和属性都相同,就将旧节点的值更新为新节点的值。最后,使用ET.tostring
方法将更新后的旧根节点转换为字符串,并打印输出。