xslは、別の値がtrueかfalseかに応じてxml要素の値をマップします。以前はxslでブール演算子を使用しようとしたことはありませんでしたが、なぜ動作していないのかわかりません。AND演算子がxslファイルで評価されていない
ここで一部と私のXSLからの抽出物は、私が問題を抱えている:私は注文が入って来ているし、私は「ProcessNameのを」要素の値を評価しています
基本的に<xsl:choose>
<xsl:when test="contains(payload/orderItem/processName, 'ResetPilotPassword') and /payload/orderItem/UsingOldSip = 'true'">
<serviceId>
<xsl:value select="/payload/orderItem/service/externalIds/externalId[displayName = 'MPLS ID']/externalId"/>
</serviceId>
</xsl:when>
<xsl:when test="contains(payload/orderItem/processName, 'ResetPilotPassword') and /payload/orderItem/UsingOldSip = 'false'">
<serviceId>
<xsl:value-of select="payload/orderItem/bearerServiceIdentifier"/>
</serviceId>
</xsl:when>
<xsl:otherwise>
<serviceId>
null
</serviceId>
</xsl:otherwise>
</xsl:choose>
と"UseIldSip"を使用して、要素 "serviceId"に割り当てる値を決定します。しかし、要素には正しい値の代わりにnullが設定されています。これらの値はこのxslに達する前に正しく順序付けされているため、「と」の実装方法に間違いがあります。ここにオペレータ。誰かが問題が何かを見ることができますか?私は各条件の周りに、テスト全体の周りに括弧を入れてみました、そして、それはまだ動作していません。事前に
おかげ
EDIT 1: サンプル入力XML要求されるように。実際のXMLは、はるかに多くの要素が含まれていますが、私は必要とする重要な要素は、次のようになります。
<xsl:template match="payload/orderItem">
<xsl:choose>
<xsl:when test="contains(processName/text(), 'ResetPilotPassword') and UsingOldSip/text() = 'true'">
<serviceId>
<xsl:value select="service/externalIds/externalId[displayName = 'MPLS ID']/externalId/text()"/>
</serviceId>
</xsl:when>
<xsl:when test="contains(processName/text(), 'ResetPilotPassword') and UsingOldSip/text() = 'false'">
<serviceId>
<xsl:value-of select="bearerServiceIdentifier/text()"/>
</serviceId>
</xsl:when>
<xsl:otherwise>
<serviceId>
null
</serviceId>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
か、であれば:あなたは、いくつかのorderItem
の要素を持っている場合、あなたはこのような何かを持っている必要があり
<orderItem xmlns="http://gatewayNamespace">
<processName>orderResetPilotPassword</processName>
<orderId>12345</orderId>
<accountId>56789</accountId>
<emailAddress>[email protected]</emailAddress>
<UsingOldSip>true</UsingOldSip>
</orderItem>
ソースコードを再フォーマットして、水平スクロールバーが消えるようにしてください。 – reporter
入力XMLのサンプルも表示できますか?ありがとうございました! –
私は何の問題も見ていません。あなたのXMLタグのパスに何か問題がありますか?XMLを表示してください。 –