我想将网页重定向到xyz属性中保存的值。
<meta http-equiv="refresh" content="0; url=<xsl:value-of select="xyz"/>"></meta>
以上不起作用。我尝试了一些其他的排列,他们也没有工作。
我应该在这里寻找什么?一些转换运算符将值转换为字符串,以便我可以重定向到它?
答案 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的推荐,使用显式属性构造函数也是解决问题的绝佳方法。