给出像
这样的xml文档<root>
<row>
<a>2</a>
<b>1</b>
<c>8</c>
</row>
<row>
<b>5</b>
<a>2</a>
<c>8</c>
</row>
<row>
<a>2</a>
<c>8</c>
<b>6</b>
</row>
</root>
是否有一种简单的方法来断言XML文档在XMLUnit
中的元素B上排序编辑:我对一个软件有一个奇怪的问题,我无法改变任何给定节点中XML标签的值需要按特定顺序排列的位置。我想让我的测试工具在任何其他验证之前强制执行这套规则。
答案 0 :(得分:2)
使用以下简单XPath 1.0表达式的值:
<强> not(//b[. > following::b])
强>
答案 1 :(得分:1)
您可以围绕XPath选择构建断言。
可能最简单的方法是使用XPath表达式/root/row/b
,请求NODESET
结果类型,然后将每个结果节点的文本复制到List
结构中。您可以声明该列表中的文本等于使用Arrays.asList()
方法创建的“预期”列表(我假设您使用的是Java)。
答案 2 :(得分:1)
如果你可以执行XQuery,那么XQuery断言:
every $i in (1 to count ($x/row) - 1)
satisfies
let $j := $i + 1
return number($x/row[$i]/b) <= number($x/row[$j]/b)
其中$ x是文档,如果行按b的升序排列,则为true,否则为