我正在使用营销平台来实施航空公司确认消息。该平台允许我们编写xsl来循环从数据库返回的值。我想要做的是检查整个路径
/消息/道具/ 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轴来实现类似的功能,但是当我在营销平台上运行它时,即使它不应该显示“无”。
答案 0 :(得分:1)
好吧,不确定这是否能解决问题,但这条路径存在问题:
passseg_to_passengers/passseg_to_passenger/passsegfee_to_passengersegments
/passsegfee_to_passengersegment/Prop[@prop_name = 'feetype']/@val != 'SSR'
如果任何脚型不等于“SSR”,则会生成true。要检查是否缺少值,可以执行以下操作:
not(passseg_to_passengers/passseg_to_passenger/passsegfee_to_passengersegments
/passsegfee_to_passengersegment/Prop[@prop_name = 'feetype']/@val = 'SSR')