私はXSLTの専門家ではありません。私はすべての "コード"の値をチェックし、以下の規則に従ってステータスコードを設定する必要があります。各要素のXSLTチェック値と要素の設定値
- 全てのコード値が200である場合、200からstatusCodeを設定し、全てのコード値が200から200または204は、設定されたステータスコードのいずれかであるとのreasonPhraseが持っているすべての理由のconcatnatiopn場合成功
- へのreasonPhrase 200
- 以外のコード少なくとも1つのコードが200以外の値と204が含まれている場合、503にからstatusCodeを設定してのreasonPhrase私はのカップルを試みた200
以外のコードを持っているすべての理由のconcatnatiopnありますすべてのコード値を1つのvarに格納する方法iableとexeceuteには、上記の条件に加えてコード変数を作成して値を格納し、文字列の長さをチェックする機能が含まれています。しかし、私は成功を収めていませんでした。
私は、この要件が複雑なxsltの一部であり、以下は要件の例であるため、できるだけ一般的な方法を探しています。 私は以下のコードのための論理を取得すると、私は複雑なxsltに論理を収めることができるはずです。
また、回答で検索しようとしましたが、この要件に適合する解決策は見つかりませんでした。 XSLTの他の部分は、XSLT 1.0
入力で書かれているように私は、XSLT 1.0で解決策を探しています
-
<root>
<Node1>
<code>200</code>
<reason>Success</reason>
</Node1>
<Node1>
<code>200</code>
<reason>Success</reason>
</Node1>
<Node1>
<code>204</code>
<reason>Business Error</reason>
</Node1>
<Node1>
<code>500</code>
<reason>Tech Error</reason>
</Node1>
<Node1>
<code>200</code>
<reason>Success</reason>
</Node1>
</root>
出力 -
<root>
<output>
<statuscode></statuscode>
<reasonphrase></reasonphrase>
</output>
</root>
ありがとうございました。
"xsltの他の部分がxslt 1.0で書かれているので、私はxslt 1.0で解決策を探しています。" - それは実際には非常に良い理由ではありません。これは、アプリの他の部分がJDK 1.4を使用しているため、JDK 1.4を固執するようなものです。 XSLT 1.0は、JDK 1.4よりもずっと長い間古くなっています。 –
はい、私は同意します。しかし、XSLTはTIBCOコードに統合される予定です。 TIBCOコード全体と比較すると、わずか10%です。だから、プロジェクトチームはxslt 1.0で大丈夫です。 ご返信ありがとうございます。 – Nilay