質問

のような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タグの値が特定の順序である必要がある場合、変更できないソフトウェアに奇妙な問題があります。他の検証の前にこの一連のルールを実施するために、私のテストハーネスがそれを望んでいます。

役に立ちましたか?

解決

次の単純なxpath1.0式の値を使用します:

not(//b[. > following::b])

他のヒント

Xpathの選択に関するアサーションを構築できます。

おそらく最も簡単な方法はXpath式を使用することです /root/row/b, 、リクエスト NODESET 結果タイプ、次に、各結果ノードからテキストをコピーして List 構造。そのリストのテキストは、 Arrays.asList() 方法(Javaを使用していると仮定しています)。

Xqueryを実行できる場合は、Xquery Assertion:

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の昇順である場合、それ以外の場合は偽です

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top