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

比较Java中2个XML文档的最佳方法

柳项明
2023-03-14
问题内容

我正在尝试编写一个应用程序的自动化测试,该测试基本上将自定义消息格式转换为XML消息并将其发送到另一端。我有一组不错的输入/输出消息对,所以我要做的就是将输入消息发送进去,并听XML消息传到另一端。

当需要将实际输出与预期输出进行比较时,我遇到了一些问题。我的第一个想法只是对预期消息和实际消息进行字符串比较。这不能很好地工作,因为我们拥有的示例数据并不总是保持一致的格式,并且常常为XML名称空间使用不同的别名(有时根本不使用名称空间)。

我知道我可以解析两个字符串,然后遍历每个元素并自己比较它们,这并不是很难做到的,但是我感觉有一种更好的方法或可以利用的库。

因此,归根结底,问题是:

给定两个都包含有效XML的Java字符串,你将如何确定它们在语义上是否等效?如果你有办法确定差异是多少,你将获得加分。


问题答案:

听起来像XMLUnit的工作

  • http://www.xmlunit.org/
  • https://github.com/xmlunit

例:

public class SomeTest extends XMLTestCase {
  @Test
  public void test() {
    String xml1 = ...
    String xml2 = ...

    XMLUnit.setIgnoreWhitespace(true); // ignore whitespace differences

    // can also compare xml Documents, InputSources, Readers, Diffs
    assertXMLEqual(xml1, xml2);  // assertXMLEquals comes from XMLTestCase
  }
}


 类似资料:
  • 问题内容: 您如何建议完成此任务? 我所面临的挑战是智能呈现差异信息。在我重新发明轮子之前,是否有一种公认的方法来处理这种比较? 问题答案: 您可以尝试XStream的体系结构,处理JSON映射 另外,请看一下这篇文章:比较两个XML文件并在C#中使用XMLDiff生成第三个文件。它在C#中,但是逻辑是相同的。

  • 本文向大家介绍python比较2个xml内容的方法,包括了python比较2个xml内容的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python比较2个xml内容的方法。分享给大家供大家参考。具体分析如下: 调用: 希望本文所述对大家的Python程序设计有所帮助。

  • 问题内容: 用Java解析多个离散的自定义XML文档的最佳方法是什么? 问题答案: 我将使用Stax解析XML,它既快速又易于使用。我在上一个项目中一直使用它来解析最大24MB的XML文件。java.net上有一个不错的介绍,它告诉您入门所需的一切。

  • 问题内容: 我正在为生成Excel文件(二进制文件)的某些代码编写JUnit测试。我还有另一个包含预期输出的Excel文件。将实际文件与预期文件进行比较的最简单方法是什么? 当然,我可以自己编写代码,但是我想知道在受信任的第三方库(例如Spring或Apache Commons)中是否已有这样做的方法。 问题答案: 这就是我最终要做的(由DBUnit完成繁重的工作): 这将比较两个文件中的数据,没

  • 问题内容: 我正在尝试优化在JavaScript中对字符串进行二进制搜索的函数。 二进制搜索要求您知道键是枢轴还是枢轴。 但这需要JavaScript中的两个字符串比较,这与同类语言不同,后者具有返回三个值(小于,等于,大于)的函数。 JavaScript中是否有这样的本机函数可以返回三进制值,以便在二进制搜索的每次迭代中只需要一个比较? 问题答案: 您可以使用该方法。

  • 问题内容: 我需要比较两个对象(同一类的实例)中的许多字段,并做一些记录和更新,以防出现差异。元代码可能看起来像这样: 具有所有比较的代码非常简洁,我想以某种方式使其更紧凑。如果我有一个方法可以将setter和getter的调用作为参数并在所有字段中调用,那将是很好的,但是不幸的是,这对于Java是不可能的。 我提出了三个选择,每个选择都有其自身的缺点。 1.使用反射API来找出getter和se