我需要订购我的XSLT。
示例:
<td>
<xsl:variable name="Type">
<xsl:value-of select="/Rows/Row[@Group = $group and (@Type_Typ_x='Type1' or @Type_Typ_x='Type2')]/@Type_Typ_x"/>
</xsl:variable>
<xsl:value-of select="/Rows/Row[@Group = $group and (@Type_Typ_x='Type1' or @Type_Typ_x='Type2')]@Title" disable-output-escaping="yes"/>
我想只显示Type 1,如果没有,则显示Type2。 任何人都可以帮助我吗?
抱歉我的英文。 非常感谢你......
答案 0 :(得分:0)
获得&#39; Type1&#39;如果它存在,你只需这样做
<xsl:value-of select="Rows/Row[@Type_Typ_x='Type1']/@Title" />
并获得&#39; Type2&#39;如果&#39; Type1&#39;不存在,你可以这样做
<xsl:value-of select="Rows[not(Row[@Type_Typ_x='Type1'])]/Row[@Type_Typ_x='Type2']/@Title" />
所以,你可以将这两个语句一个接一个地放在一起,因为只有一个语句会返回一个值。或者你可以这样组合:
<xsl:value-of select="Rows/Row[@Type_Typ_x='Type1']/@Title
|Rows[not(Row[@Type_Typ_x='Type1'])]/Row[@Type_Typ_x='Type2']/@Title" />
另一种方法可能是使用 xsl:choose 语句
<xsl:choose>
<xsl:when test="Rows/Row[@Type_Typ_x='Type1']">
<xsl:value-of select="Rows/Row[@Type_Typ_x='Type1']/@Title" />
</xsl:when>
<xsl:when test="Rows/Row[@Type_Typ_x='Type2']">
<xsl:value-of select="Rows/Row[@Type_Typ_x='Type2']/@Title" />
</xsl:when>
</xsl:choose>
只要发现一个 xsl:when 为真,其他人就不会被评估,无论他们是否属实。
最后,如果你能保证&#39; Type1&#39;记录总是出现在&#39; Type2&#39; XML中的记录,然后这将工作:
<xsl:value-of select="Rows/Row[@Type_Typ_x='Type1' or @Type_Typ_x='Type2'][1]/@Title"/>