que tienen necesidad frecuente para probar que los archivos XML son correctos y necesitan una manera de probar que 2 cadenas XML (o documentos) son idénticos, tales como:¿Hay un AssertEquals para probar archivos XML?
XMLAssert.assertEquals(String xmlExpected, String xmlActual);
Además sería útil para mostrar donde el documentos xml difieren.
Esto debe estar restringido a los documentos con standalone = "yes" (es decir, el DTD o esquema, si corresponde) no es significativo). Esto significa que no hay valores predeterminados y los tipos de atributos son irrelevantes. Los nodos de PCDATA de texto adyacente deben estar normalizados (concatenados).
Tenga en cuenta que esto no puede hacerse simplemente mediante la comparación léxica
Assert.assertEquals(xmlExpected, xmlActual);
indefinidamente, ya que hay muchas maneras de hacer que el mismo conjunto de información XML. La comparación debe tener en cuenta los espacios de nombres en los elementos y atributos (pero no los valores de los atributos, que no son parte de la especificación).
Una forma de hacer esto podría implicar la canonicalización de ambos documentos. Alternativamente, podría usarse un XMLDiff.
No pude encontrar nada, así que escribí el mío hace unos años.
[I también tienen una necesidad particular para comparar valores de punto flotante, aunque este debe ser un truco ya que el tipo de datos de CDATA o PCDATA sólo puede ser imaginado y está fuera del alcance inmediato de la pregunta.]
NOTA: Probablemente tendrá que haber una solución específica para cada idioma. Estoy particularmente interesado en Java y C#
Gracias. Esto es sin duda tan completo como deseé y algo más poderoso que lo que escribí. Es una lástima que no descubrí esto hace 2 años –