我有以下代码 -
xml -
<pctList class="array">
<e class="object">
<hotelID type="number">10180</hotelID>
</e>
<e class="object">
<hotelID type="number">10181</hotelID>
</e>
<e class="object">
<hotelID type="number">10182</hotelID>
</e>
</pctList>
我的xslt -
<xsl:for-each select="pctList/e">
<xsl:choose>
<xsl:when test='(hotelID = 10079)'>
<db:EIS_RATE_FIELD_2>
<xsl:text disable-output-escaping="no">SPECIAL RATE</xsl:text>
</db:EIS_RATE_FIELD_2>
</xsl:when>
<xsl:otherwise>
<db:EIS_RATE_FIELD_2>
<xsl:text disable-output-escaping="no"></xsl:text>
</db:EIS_RATE_FIELD_2>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
例外输出只有一个 -
<EIS_RATE_FIELD_2></EIS_RATE_FIELD_2>
我在使用时得到的输出错误 -
<EIS_RATE_FIELD_2></EIS_RATE_FIELD_2>
<EIS_RATE_FIELD_2></EIS_RATE_FIELD_2>
<EIS_RATE_FIELD_2></EIS_RATE_FIELD_2>
答案 0 :(得分:0)
请勿使用xsl:for-each
。删除它但保留xsl:choose
及其内容。然后使用以下行替换xsl:when
行:
<xsl:when test="pctList/e[hotelID = 10079]">
这将只生成一行:如果没有酒店ID为10079 ,则为空EIS_RATE_FIELD_2
元素,如果有,则为,然后该元素将包含文本“SPECIAL RATE”。 / p>