Tôi đang cố gắng thành công XmlUnit và rất hữu ích trong công việc của tôi. Bây giờ, tôi có một vấn đề nhỏ, rằng tôi không biết làm thế nào để giải quyết. Tôi có một lớp java, có một Set và khi chuyển đổi nó thành XML, các phần tử bên trong có thể có bất kỳ thứ tự nào.So sánh các tệp xml tương tự với XmlUnit với các thẻ không có thứ tự (cùng một tên thẻ với các thuộc tính khác nhau)
Khi tôi cố gắng hai tập tin này trong XmlUnit nó hoạt động (Diff nói rằng họ là tương tự):
<?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>
Nhưng khi các thẻ có cùng tên (với các thuộc tính khác nhau) nó không làm việc (nó trộn lẫn các thuộc tính, và hy vọng một trong thẻ khác):
<?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>
có workaround?
Tôi tìm thấy giải pháp của bản thân mình, với đoạn mã này: \t \t Diff diff = new Diff (controlXml, responseXML); \t \t diff.overrideElementQualifier (new ElementNameAndAttributeQualifier()); hoàn thành;) – greuze
bạn có thể tự mình đăng câu trả lời cho câu hỏi và sau đó chấp nhận câu trả lời đó không? Ngoài ra, bạn cần chấp nhận câu trả lời cho các câu hỏi trước nếu chúng khắc phục được sự cố của bạn. – Zecas
Ok, tôi nghĩ mình không thể trả lời câu hỏi của mình. Bây giờ tôi sẽ tự trả lời. – greuze