将XML自关闭标记替换为空标记

StK*_*ler 2 java xml compare

我必须比较XML数据.有两个来源 -

  • 网络服务
  • XML文件

我没有看到任何简单的方法来在同一个类中转换它们并使用equals方法.

使用Web服务的类是自动生成的,WSDL根本不简单.

所以我从Web Service读取响应,读取相应的文件,将它们转换为具有相同格式的String(删除空格,\n\r \n字符等),然后使用String.equals()方法.

问题是Web服务的空标签是下一个写的:

<EmptyTag/>
Run Code Online (Sandbox Code Playgroud)

但提供的文件包含这种空标记:

<EmptyTag></EmptyTag>
Run Code Online (Sandbox Code Playgroud)

好的,有一种方法可以手动准备所有提供的文件,但我不喜欢它.谁知道,如何将空标签转换为相同的样式?如果有任何想法如何简化处理 - 欢迎你;)

UPDATE

我不解析xml.只读取文件的数据并将其转换为预期的格式.Web Service响应中的对象结构将以下一种方式转换为xml字符串:

    marshaller.marshal(new JAXBElement<response_class_name>(new QName("response_class_name"),
       response_class_name.class, response_object), stringWriter);
Run Code Online (Sandbox Code Playgroud)

Kat*_*one 5

对于Java,我会使用XMLUnit来比较文件,因为它使用它们的结构比较xml文件,而不是字符串(它可能会也可能不会忽略空格,具体取决于设置).