我想将网页重定向到 xyz 属性中保存的值。
<meta http-equiv="refresh" content="0; url=<xsl:value-of select="xyz"/>"></meta>
以上不起作用。我尝试了其他一些排列,但它们也不起作用。
我应该在这里寻找什么?一些转换运算符将值转换为字符串以便我可以重定向到它?
我认为最好的方法是使用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>
在文字结果元素中,属性值是使用属性值模板指定的。在属性值模板中,大括号中的部分值被评估为 XPath 表达式。这样就可以达到你想要的效果:
<meta http-equiv="refresh"
content="0; url={$xyz}" ></meta>
使用 S. Visser 推荐的显式属性构造函数也是解决问题的好方法。