![]() |
1
24
你可以使用 formencode.doctest_xml_compare --xml_compare函数比较两个elementtree或lxml树。 |
![]() |
2
14
元素的顺序在XML中可能很重要,这可能是为什么大多数建议的其他方法在顺序不同时会比较不相等…即使元素具有相同的属性和文本内容。 但是我也想要一个顺序不敏感的比较,所以我想到了:
|
![]() |
3
5
我有同样的问题:我想比较两个具有相同属性但顺序不同的文档。 似乎LXML中的XML规范化(C14N)可以很好地解决这个问题,但我绝对不是XML专家。我很好奇是否有人能指出这种方法的缺点。
运行这个可以让我:
|
![]() |
4
5
这里是一个简单的解决方案,将XML转换为字典(使用 XMLtoDICT )把字典放在一起比较
单元测试
或者在简单的python方法中:
|
![]() |
5
2
如果采用DOM方法,则可以在比较节点(节点类型、文本、属性)的同时同时遍历两个树。 递归解决方案将是最优雅的——只要在一对节点不“相等”时进行短路进一步比较,或者当您检测到一棵树中的一片叶子是另一棵树中的一个分支时进行短路进一步比较,等等。 |
![]() |
6
2
考虑到这个问题,我提出了以下解决方案,使XML元素具有可比性和可排序性:
|
![]() |
7
0
适应
Anentropic's great answer
到python 3(基本上,更改
|
![]() |
8
0
自从 order of attributes is not significant in XML ,您希望忽略由于不同的属性顺序和 XML canonicalization (C14N) 确定性排序属性,您可以使用该方法测试相等性:
注意,这个例子假设使用python 3。对于python 3,使用
|
![]() |
9
0
Simpletal使用自定义xml.sax处理程序比较XML文档 https://github.com/janbrohl/SimpleTAL/blob/python2/tests/TALTests/XMLTests/TALAttributeTestCases.py#L47-L112 (比较getxmlchesum的结果) 但是我更喜欢生成一个列表而不是MD5哈希 |
![]() |
10
0
下面的代码段怎么样?可以很容易地增强以包括属性:
|