0

我有一些 XSLT,我试图为图像添加 URL。到目前为止我有

    <xsl:if test="$currentPage/ImageOne != ''"> 

      <xsl:element name="img">
        <xsl:attribute name="src">
          <xsl:value-of select="umbraco.library:GetMedia($currentPage/ImageOne, 0)/*"/>
        </xsl:attribute>

      <xsl:attribute name="alt">
          <xsl:value-of select="$currentPage/ImageOne"/>
        </xsl:attribute> 
      </xsl:element>

    </xsl:if>

如果我添加另一个 XSLT 节点

      <xsl:attribute name="a">
          <xsl:value-of select="http://somesite.com"/>
        </xsl:attribute> 
      </xsl:element>

然后我得到一个解析器错误(在上面的代码中,我使用“a”来向该图像添加一个超链接,但没有任何效果。有人能告诉我出了什么问题吗?

谢谢

新代码

    <xsl:if test="$currentPage/ImageOne != ''"> 

        <xsl:element name="a"> 
        <xsl:element name="img">
        <xsl:attribute name="src">
          <xsl:value-of select="umbraco.library:GetMedia($currentPage/ImageOne, 0)/*"/>
        </xsl:attribute>

        <xsl:attribute name="alt">
          <xsl:value-of select="$currentPage/ImageOne"/>
        </xsl:attribute>

        <xsl:element name="href">
          <xsl:value-of select="'http://www.microsoft.com'"/>
        </xsl:element>  
        </xsl:element>
      </xsl:element>
    </xsl:if>
4

1 回答 1

0

如果您想添加 fix url:"http://somesite.com"作为属性的值a 并且您使用xsl:value-of select您必须将“const”字符串放入撇号 ( '..')

尝试:

  <xsl:attribute name="a">
          <xsl:value-of select="'http://somesite.com'"/>
        </xsl:attribute> 
      </xsl:element>

但你也不需要xsl:element在你的例子中使用:以下也可以:

<img a="http://somesite.com" alt="{$currentPage/ImageOne}">
        <xsl:attribute name="src">
          <xsl:value-of select="umbraco.library:GetMedia($currentPage/ImageOne, 0)/*"/>
        </xsl:attribute>
</img>

要与图像链接,请尝试:

<a href="http://somesite.com" ">
 <img  alt="{$currentPage/ImageOne}">
      <xsl:attribute name="src">
          <xsl:value-of select="umbraco.library:GetMedia($currentPage/ImageOne, 0)/*"/>
       </xsl:attribute>
   </img>
</a>
于 2013-07-15T11:30:44.683 回答