我有以下格式的XML:
<Root>
<Elem1>
<SubElem1>A</SubElem1>
...
</Elem1>
<Elem1>
<SubElem1>B</SubElem1>
...
</Elem1>
<Elem2>
...
</Elem2>
...
</Root>
我想指示XmlUnit的差异引擎忽略ElemN元素的顺序,但仅限于他们的&#34;组&#34;。
E.g:
有没有办法实现这个结果?
答案 0 :(得分:0)
是的,这是ElementSelector
的工作。默认情况下,XMLUnit(2.x)按照它们出现的顺序对元素进行比较,但您可以使用ElementSelector
来影响选择哪个兄弟元素。
我是你的情况,你似乎很乐意按顺序选择元素,除非它们被命名为Elem1
。对于Elem1
,您希望根据嵌套在SubElement1
子项中的文本选择对。编写这样的ElementSelector
的一种方法可能是
ElementSelectors.ConditionalBuilder()
.WhenElementIsNamed("Elem1")
.ThenUse(ElementSelectors.ByXPath("./SubElem1", ElementSelectors.ByNameAndText))
.ElseUse(ElementSelectors.Default)
.Build();
有关更多详细信息和示例,请参阅XMLUnit user guide。