我是XSLT的新手。我想用XSLT创建一个超链接。 应该是这样的:如何使用XSLT创建超链接?
请阅读我们的隐私政策。
“隐私政策”是链接,当点击这个,应该重定向到例如“www.privacy.com”
任何想法? :)
我是XSLT的新手。我想用XSLT创建一个超链接。 应该是这样的:如何使用XSLT创建超链接?
请阅读我们的隐私政策。
“隐私政策”是链接,当点击这个,应该重定向到例如“www.privacy.com”
任何想法? :)
这种转变:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<html>
<a href="www.privacy.com">Read our <b>privacy policy.</b></a>
</html>
</xsl:template>
</xsl:stylesheet>
当应用于任何 XML文档(未使用),产生想要的结果:
<html><a href="www.privacy.com">Read our <b>privacy policy.</b></a></html>
,这是由浏览器显示为:
阅读我们的隐私政策。
现在想象一下,没有什么是硬编码在XSLT样式表 - 而不是数据源XML文档在:
<link url="www.privacy.com">
Read our <b>privacy policy.</b>
</link>
那么这种转变:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="link">
<a href="{@url}"><xsl:apply-templates/></a>
</xsl:template>
</xsl:stylesheet>
当应用于上述XML文档时,会产生想要的正确结果:
<a href="www.privacy.com">
Read our <b>privacy policy.</b>
</a>
如果您想在XSLT中拥有超链接,那么您需要使用XSLT创建HTML输出。 在HTML中,你可以创建一个这样
<a href="http://www.yourwebsite.com/" target="_blank">Read our privacy policy.</a>
在这整个文本中的超链接变成了超链接指向www.yourwebsite.com
谢谢!我会试试这个! – JADE 2012-04-17 03:51:36
XSLT不会做超链接。重新思考你的问题。 – 2012-04-17 03:37:31
在考虑如何在XSLT中实现类似的功能时,将任务分成两部分:(a)确定要生成的HTML,以及(b)确定需要生成的XSLT代码。你说这个问题的方式表明你没有把握这种关注的分离。 – 2012-04-17 07:55:32