关于xsl:select语句的Noob查询

时间:2016-11-21 04:14:22

标签: xml xslt

我坚持这个相当简单的陈述。 我正在尝试使用xsl:choose语法来获取值为1的源的值,以显示为工作场所中的位置,例如“合作伙伴”。这是我采购的结果:

<PresTimekeeper1_TkprDate_Title>1</PresTimekeeper1_TkprDate_Title>

我正在使用的选择声明是:

<xsl:choose>
   <xsl:when test="./Attributes/PresTimekeeper1_TkprDate_Title = '1'">
     <xsl:value-of select="Partner" />
  </xsl:when>   
</xsl:choose>

当我跑步时

 <xsl:value-of select="./Attributes/PresTimekeeper1_TkprDate_Title" />

输出文件显示数字1.所以我知道我使用了正确的来源。

如何定义1,因此值-t将显示“合作伙伴”一词而不是数字1?

如果我没有正确解释自己,我道歉。

2 个答案:

答案 0 :(得分:1)

最惯用的写作方式是

<xsl:if test="./Attributes/PresTimekeeper1_TkprDate_Title = '1'"
   >Partner</xsl:if>

有些人更喜欢将文字字符串放在xsl:text元素中。

我个人喜欢这个成语:

<xsl:value-of select="'Partner'
    [current()/Attributes/PresTimekeeper1_TkprDate_Title = '1']"/>

但我没有看到很多人使用它。

答案 1 :(得分:1)

指示:

<xsl:value-of select="Partner" />

正在寻找名为Partner的子节点。如果您想要文字文本“Partner”,则必须使用:

<xsl:value-of select="'Partner'" />

或者,最好是:

<xsl:text>Partner</xsl:text>

您也可以将文本直接放在xsl:when指令中(没有额外的空格):

<xsl:when test="./Attributes/PresTimekeeper1_TkprDate_Title = '1'">Partner</xsl:when>