XML是一种常见的数据交换格式,而Python则是一种功能强大的编程语言,本文将介绍如何使用Python比较2个XML内容的方法。

首先,我们可以使用Python的xml.etree.ElementTree模块来解析XML文件,如下所示:
```python
import xml.etree.ElementTree as ET
tree1 = ET.parse("file1.xml")
root1 = tree1.getroot()
tree2 = ET.parse("file2.xml")
root2 = tree2.getroot()
```
上面的代码将XML文件解析为树形结构,并将其根节点存储在root1和root2变量中。
接下来,我们可以使用递归函数来比较2个XML节点,如下所示:
```python
import json
def compare_nodes(node1, node2):
if node1.tag != node2.tag:
return False
if node1.text != node2.text:
return False
if node1.tail != node2.tail:
return False
if node1.attrib != node2.attrib:
return False
if len(node1) != len(node2):
return False
for child1, child2 in zip(node1, node2):
if not compare_nodes(child1, child2):
return False
return True
result = compare_nodes(root1, root2)
print(json.dumps(result))
```
上面的代码定义了一个compare_nodes函数,该函数将递归比较2个XML节点,如果节点各属性都相同,则节点相等,否则节点不相等。如果2个XML文件完全相同,则result将输出true,否则输出false。
另外,我们也可以使用Python的xml.dom.minidom模块来比较2个XML文档,如下所示:
```python
import xml.dom.minidom as minidom
xml1 = minidom.parseString("
xml2 = minidom.parseString("
result = xml1.toxml() == xml2.toxml()
print(json.dumps(result))
```
上面的代码使用minidom.parseString()函数将XML字符串解析为DOM对象,并使用toxml()函数将DOM对象转换为XML字符串。然后通过比较2个XML字符串来判断XML文档是否相等。
综上所述,Python比较2个XML内容的方法有多种,开发人员可以根据自己的实际需求选择最适合的方法来进行XML比较。