使用XSLT向图像添加URL

时间:2013-07-15 10:52:59

标签: xml xslt xml-parsing xsd

我有一些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>

然后我得到一个解析器错误(在上面的代码中使用&#34; a&#34;为了添加到该图像的超链接,但没有任何作用。有人建议有什么问题吗?

由于

新代码

    <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>

1 个答案:

答案 0 :(得分:0)

如果您想要将修复网址"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>