【发布时间】:2011-07-05 09:30:09
【问题描述】:
我正在成功尝试 XmlUnit,并且对我的工作非常有帮助。现在,我有一个小问题,我不知道如何解决。我有一个java类,它有一个Set,当它转换成XML时,里面的元素可以有任何顺序。
当我在 XmlUnit 中尝试这两个文件时,它可以工作(Diff 说它们相似):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Monitor>
<AvailableMeasures>
<MeasureDescriptorA name="netInput_mynetwork"></MeasureDescriptorA>
<MeasureDescriptor name="netInput_myothernetwork"></MeasureDescriptor>
</AvailableMeasures>
</Monitor>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Monitor>
<AvailableMeasures>
<MeasureDescriptor name="netInput_myothernetwork"></MeasureDescriptor>
<MeasureDescriptorA name="netInput_mynetwork"></MeasureDescriptorA>
</AvailableMeasures>
</Monitor>
但是当标签具有相同的名称(具有不同的属性)时,它不起作用(它混合了属性,并期望另一个标签中的那个):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Monitor>
<AvailableMeasures>
<MeasureDescriptor name="netInput_myothernetwork"></MeasureDescriptor>
<MeasureDescriptor name="netInput_mynetwork"></MeasureDescriptor>
</AvailableMeasures>
</Monitor>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Monitor>
<AvailableMeasures>
<MeasureDescriptor name="netInput_mynetwork"></MeasureDescriptor>
<MeasureDescriptor name="netInput_myothernetwork"></MeasureDescriptor>
</AvailableMeasures>
</Monitor>
有什么解决办法吗?
【问题讨论】:
-
我自己找到了解决方案,用这段代码: Diff diff = new Diff(controlXml, responseXml); diff.overrideElementQualifier(new ElementNameAndAttributeQualifier());它完成了;)
-
能否请您自己发布该问题的答案,然后接受该答案?此外,如果他们解决了您的问题,您需要接受之前问题的答案。
-
好吧,我想我无法回答我自己的问题。我现在会回答自己。