none
关于choose内when test的取值问题 RRS feed

  • 问题

  • 网上的choose取值大多都是取的简单元素的值,比如说<price>5</price>这个最常见的例子,   我要取值比较然后给他加颜色的话可以这样取值:
    <xsl:choose>
               <xsl:when test="price &gt; 10">
                     <td bgcolor="#ff00ff">
                      <xsl:value-of select="artist"/></td>
                </xsl:when>
           <xsl:otherwise>

                      <td><xsl:value-of select="artist"/></td>
                </xsl:otherwise>
    </xsl:choose>

    但是如果被取的元素的值是复合类型的话,该如何取值呢?比如:<Outcome value="Failed"/>这个复合元素该如何取值呢?
    我说的是<xsl:when text="">该如何取这个复合元素的值呢?
    我要实现的是结果输出是Failed那么让它字体为红色,结果输出是Passed让它字体为绿色。
    2009年6月13日 0:38

答案

全部回复

  • 网上的choose取值大多都是取的简单元素的值,比如说<price>5</price>这个最常见的例子,   我要取值比较然后给他加颜色的话可以这样取值:
    <xsl:choose>
               <xsl:when test="price &gt; 10">
                     <td bgcolor="#ff00ff">
                      <xsl:value-of select="artist"/></td>
                </xsl:when>
           <xsl:otherwise>

                      <td><xsl:value-of select="artist"/></td>
                </xsl:otherwise>
    </xsl:choose>

    但是如果被取的元素的值是复合类型的话,该如何取值呢?比如:<Outcome value="Failed"/>这个复合元素该如何取值呢?
    2009年6月12日 8:40
  • 如果你是要取属性值 <xsl:value-of select="Outcome/@value"/>
    或者
    <xsl:template match="Outcome">
    <xsl:value-of select="@value"/>
    </xsl:template>

    http://webdevelop.jzxue.com/xml-xslt/200902/23-1613.html 参考资料

    Denn ich gehor nur dir!坚持不懈!http://hi.baidu.com/1987raymond
    2009年6月12日 9:22
    版主
  • 你说的那种取值方法我知道。
    我说的是 <xsl:when test="price &gt; 10">中的<xsl:when test="">如何在<Outcome value="Failed"/>中取value的属性值呢?
    如果我这样取值的话<xsl:when test="Outcome/@value=“Failed"/>会出现语法上的错误。
    我的目的是想把值是Failed变红色,值passed变绿色。
    2009年6月12日 11:21
  • <xsl:when test="@value = 'Failed'">

    xsl没有复合类型的说法
    【孟子E章】
    2009年6月13日 9:55
    版主