1

私は、XML を比較するために XMLunit を使用しています。以下のような xml があります。

<e>
 <accounts>
  <number>56482</number>
  <name>ererr</name>
 </accounts>
</e>    
<indicator>
 <e>
  <name>name1</name>
  <value>value1<value>
 </e>
 <e>
  <name>name2</name>
  <value>value2<value>
 </e>
</indicators>

上記の xml のように、異なるeに対して異なる要素セレクター条件を記述する必要があります。つまり、//e に対して別の要素セレクター条件を記述し、//indicator/e に対して異なる要素セレクター条件を記述する必要があります。現在、以下のコードを使用しています

ElementSelectors.conditionalBuilder()
.whenElementIsNamed("e").thenUse(ElementSelectors.byXPath("//indicator/e/name",ElementSelectors.byNameAndText))
                .elseUse(ElementSelectors.byName)
                .build();

しかし、この条件は //indicator/e に最適です。次のような別の条件が必要です

 ElementSelectors.conditionalBuilder()
    .whenElementIsNamed("e").thenUse(ElementSelectors.byXPath("//e/number",ElementSelectors.byNameAndText))
                    .elseUse(ElementSelectors.byName)
                    .build();

私はここで打たれました。この問題を解決する方法を教えてください。

4

1 に答える 1