当前位置: 首页 > 面试题库 >

比较具有XmlUnit和无序标记(具有不同属性的相同标记名称)的类似xml文件

司徒俊雄
2023-03-14
问题内容

我正在成功尝试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());


 类似资料:
  • 我是Jackson XML的新手,我需要在同一根元素下构造具有不同元素名称和属性的Jackson XML。 我期望的xml输出 我的pojo类(不确定如何添加剩余的元素和属性) 任何建议都将不胜感激。

  • 簇是在“我的地图”上创建的,但当标记具有相同的地址时,单击簇时,工具提示不会显示。我正在使用Gmaps标记聚类器。代码示例:`function initMap(){//map options var options={zoom:7,center:{lat:53.3938131,lng:-7.858913}}}var map=new google.maps.map(document.getEleme

  • 我想知道是否有任何方法可以告诉我具有相同标记名称、文本和类(如果有)的元素与具有相同标记名称、文本和相同类(如果有)的其他元素不同。为了澄清,请考虑以下超文本标记语言片段: 现在在上面的代码中,我如何使用div标签和text将两个元素分开。另请注意,这里的两个元素没有id。 上面的例子非常简单,但实际情况可能更复杂。因此,如果您好心地向我提出一个概括的答案,我将不胜感激。谢谢。

  • 问题内容: 我正在尝试使用RSA 7.5和Websphere 7服务器开发IBM JAX_WS Web服务。因为我是一个初学者,所以我遵循Java类优先方法,即首先创建Java类,然后生成WSDL文件。 当我尝试创建wsdl文件时,出现异常: java.security.PrivilegedActionException:com.sun.xml.internal.bind.v2.runtime.I

  • 假设您有2个包,并且有名为-Test的公共类。 第一个包。测试 第二包测试 它们中的每一个都有实例变量-x。 在第一种情况下-int x=2; 在第二种情况下-int x=3; 我想导入FirstPackage。在第二个包内测试。测试并打印值为2的x。 我的代码: 但是输出是3。如何打印?

  • 我在一个字符串变量中有一个这样的XML文件 ============================================= 我一直在将XML作为字符串传递给我的servlet /*受保护的无效服务(HttpServletRequest请求,HttpServlet响应)抛出ServletExcture,IOExcense{