问题标签 [xmlunit-2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6502 浏览

xml - 比较 XML 忽略元素顺序

使用 XMLUnit 2 如何在不考虑元素顺序的情况下比较两个文档?

我收到了 XMLUnit 1 的这个问题,但显然 v2 中的新 API 不再具有上述方法。

这是我当前的代码:

编辑 Stefan Bodewigs 评论:

这些是我与上面的片段比较的两个字符串:

报告的差异

0 投票
1 回答
2269 浏览

xmlunit - 比较 XMLUnit 2 中的子节点 - 预期子节点 'node2' 但为 'null'

我需要使用XMLUnit 2xml 子节点的顺序不同的地方来比较 XML 文件。由于使用了底层库,我无法影响子节点的顺序。

为了比较,我正在使用:

问题归结为这个 JUnit 测试:

其中t1.xml包含:

t2.xml包含:

实际上,node1并且node2是按顺序更改的。测试结果是:

我想知道是否可以将此类 xml 文件与XMLUnit 2. 任何形式的帮助表示赞赏。

0 投票
1 回答
679 浏览

java - Can't register namespace with XMLUnit

I can't seem to work out how to set namespace when comparing XML's using xmlunit-2

Tried like:

but always get

org.xmlunit.XMLUnitException: The prefix "text" for element "text:b" is not bound.

stripping away the namespace prefix from elements make it work, but I would like to learn how register properly the namespace with DiffBuilder.

The same problem/ignorence I experience with xmlunit-1.x so hints using that library I would appreciate as well.

EDIT, based on the answer

By adding the namespace attribute to the root node I managed to bind the namespace

<a xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0">

thanks Stefan

0 投票
1 回答
2857 浏览

java - XMLUnit 2.0 - 无法避免与自定义元素选择器进行顺序比较

首先感谢您提供这个很棒的图书馆,它真的很棒。

我在比较 xml 文档中不同顺序的元素时遇到问题。我开发了一个自定义 ElementSelector 以与 NodeMatcher 一起使用(稍后的代码),但它似乎仍然基于元素顺序而不是元素内容进行检查。让我写一个例子

控制

测试

我是如何制作差异的

我是如何创建 ElementSelector 选择器的

PersonNodeMatcher 实际是如何实现的

该例程仍在按顺序检查节点,因此它们永远不会匹配。我认为提供一个节点自定义节点匹配器,我将能够使用提供的 tagName 检查所有元素。

我做错了什么还是根本不可能?

[更新] 使用 alpha3 我必须对代码进行一些修改,特别是:

0 投票
1 回答
1002 浏览

java - 使用 xmlunit 比较两个 xml,忽略它们的顺序

我有两个 xml 文件,我需要使用 xmlunit 进行比较

这些 xml 文件的内容总是相同的,除了它们的顺序

前任:

这里内部组件的顺序可能会有所不同,如下所示

当我比较这两个 xml 时,我希望 diff.similar() 为真。

到目前为止我尝试的是

我尝试了不同的 overrideElementQualifier 选项,但没有任何效果。请让我知道解决方案。

0 投票
1 回答
96 浏览

.net - 针对架构断言 Xml 文档,因此文档必须包含所有架构的元素

使用 NUnit 和 XMLUnit.NET
我有两个测试验证生成的 Xml 文档是否针对模式
第一个测试只需要元素

第二次测试所有元素

这两个测试几乎涵盖了所有需要的情况,如元素的类型、顺序和要求。
除非架构包含一个元素,minOccurs="0" maxOccurs="1"并且在第二个测试(WithAllElements)中生成的 Xml 文档中缺少该元素。

问题:是否有一个断言/验证方法可以根据需要处理模式中的所有元素?

我想要这个用于需要添加新元素的情况。然后添加新元素,事件minOccurs="0"将打破测试。

0 投票
1 回答
945 浏览

java - 带有 XMLUnit 2 和默认命名空间的 Java XPath

我在使用 XMLUnit 2.0.0 和默认命名空间编写 XPath 时遇到了问题。这是我的示例 xml:

我无法使用以下 XMLUnit XPath 代码访问任何元素:

如何使用默认命名空间使用 XPathEngine/XPath 访问元素?

0 投票
1 回答
965 浏览

java - 如何禁用 XMLUnit DTD 验证?

我正在尝试使用XMLUnit 2.2.0 比较两个 XHTML 文档。但是,它需要的时间太长。我猜图书馆正在从 Internet 下载 DTD 文件。

如何禁用 DTD 验证?我正在使用以下测试代码:

阅读XMLUnit JavadocDiffBuilder.withDocumentBuilderFactory()我想我可以像这样设置一个文档构建器工厂...

那没起效。就在我从 XHTML 片段中删除 DOCTYPE 定义时,我的代码运行得很快。

0 投票
1 回答
1702 浏览

java - 比较 XML 忽略子顺序

我已经用谷歌搜索过这个问题,我知道还有 10 个其他类似的问题,但我似乎无法让它发挥作用..

我想比较 2 个 xml 字符串,只得到拼写错误或类似内容的差异,而忽略子顺序。这是我的代码自动取款机:

而我的结果....

等等。我刚刚在 xmlTestFalse.xml 文件中切换了一些依赖项(还添加了一些成功显示的拼写错误)。并且仍然注意到切换的依赖关系。为什么??我尝试做这样的事情,因为我有相同版本的 xmlunit:像这样

0 投票
1 回答
846 浏览

java - 在 XMLUnit 中打印所有差异的惯用方式是什么?

我正在尝试使用包含所有发现的差异的(文本)报告来覆盖默认的 XMLUnit 行为,即仅报告两个输入之间发现的第一个差异。

到目前为止,我已经完成了这个:

但我不喜欢:

  1. 必须遍历Differences客户端代码。
  2. 进入该比较类型的内部并使用该类型进行DefaultComparisonFormatter调用。getDetailsnull
  3. 用虚线连接差异。

也许这只是来自一种不合理的坏直觉,但我想知道是否有人对这个用例有一些意见。