如何将xsl值转换为字符串?

时间:2013-08-28 23:28:07

标签: html xml xslt

我想将网页重定向到xyz属性中保存的值。

<meta http-equiv="refresh" content="0; url=<xsl:value-of select="xyz"/>"></meta>

以上不起作用。我尝试了一些其他的排列,他们也没有工作。

我应该在这里寻找什么?一些转换运算符将值转换为字符串,以便我可以重定向到它?

2 个答案:

答案 0 :(得分:3)

我认为最好的方法是使用xsl:attribute。 那么你应该有这样的东西。

<强> XML

<root>
  <redirects>
    <xyz url="http://www.example.com" />
  </redirects>
</root>

<强> HTML

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="root/redirects/">
    <html>
      <body>
        <meta>
          <xsl:attribute name="http-equiv">refresh</xsl:attribute>
          <xsl:attribute name="content">0</xsl:attribute>
          <xsl:attribute name="url"><xsl:value-of select="xyz"/></xsl:attribute>
        </meta>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

答案 1 :(得分:1)

在文字结果元素中,使用属性值模板指定属性值。在属性值模板中,括在括号中的值的部分将被计算为XPath表达式。因此,您可以实现所需的效果:

<meta http-equiv="refresh" 
      content="0; url={$xyz}" ></meta>

根据S. Visser的推荐,使用显式属性构造函数也是解决问题的绝佳方法。