0

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

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

以上不起作用。我尝试了其他一些排列,但它们也不起作用。

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

4

2 回答 2

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>
于 2013-08-29T00:02:31.523 回答
1

在文字结果元素中,属性值是使用属性值模板指定的。在属性值模板中,大括号中的部分值被评估为 XPath 表达式。这样就可以达到你想要的效果:

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

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

于 2013-08-29T00:21:17.273 回答