マーケティング プラットフォームを使用して、航空会社の確認メッセージを実装しています。このプラットフォームでは、データベースから返された値をループする xsl を記述できます。私ができるようにしたいのは、このパス全体をチェックすることです
/Msg/Props/bookingcontact_to_booking/passenger_to_bookings/passenger_to_booking/passseg_to_passengers/passseg_to_passenger/passsegfee_to_passengersegments/passsegfee_to_passengersegment/
最終テーブル「passsegfee」の要素に特定の値を持つノードがあるかどうかを確認します。何もない場合は、「なし」と表示したいだけです。その値を持つものがあれば、それらの要素だけをループして表示します。見るべき xml 構造がないことをお詫びしますが、このセクションの xsl を以下に示します。
<xsl:for-each select="/Msg/Props/bookingcontact_to_booking/passenger_to_bookings/passenger_to_booking">
<tr id="Pax-DataRow">
<td height="22" width="200">
<xsl:value-of select="Prop[@prop_name = 'firstname']/@val" /> <xsl:value-of select="Prop[@prop_name = 'lastname']/@val" />
</td>
<td>
<xsl:choose>
<xsl:when test="passseg_to_passengers/passseg_to_passenger/passsegfee_to_passengersegments/passsegfee_to_passengersegment/Prop[@prop_name = 'feetype']/@val != 'SSR'">
None
</xsl:when>
<xsl:otherwise>
<table style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px; color: rgb(51, 51, 51);" >
<xsl:for-each select="passseg_to_passengers/passseg_to_passenger">
<xsl:for-each select="passsegfee_to_passengersegments/passsegfee_to_passengersegment">
<xsl:if test="Prop[@prop_name = 'feetype']/@val = 'SSR'">
<tr>
<td align="left">
<xsl:value-of select="Prop[@prop_name = 'feedescription']/@val" /><br/>
</td>
</tr>
</xsl:if>
</xsl:for-each>
</xsl:for-each>
</table>
</xsl:otherwise>
</xsl:choose>
</td>
<td>
<xsl:value-of select="Prop[@prop_name = 'fsnumber']/@val" />
</td>
</tr>
<xsl:if test="Prop[@prop_name = 'infantname']/@val != ''">
<tr id="Pax-DataRow">
<td height="22">
<xsl:value-of select="Prop[@prop_name = 'infantname']/@val" />
</td>
<td>
Infant
</td>
<td></td>
</tr>
</xsl:if>
</xsl:for-each>
</xsl:template>
子孫や祖先などの xpath 軸を使用して同様のことを達成できるかどうかはわかりませんが、これをマーケティング プラットフォームで実行すると、そうでない場合でも「なし」と表示されます。