我正在使用XSLT来转换XHTML中的RSS文件。 为了创建链接,我使用这段代码:
<!-- language: lang-xml -->
<xsl:for-each select="channel/item">
<h3><a href="{link}"><xsl:value-of select="title"/></a></h3>
<xsl:value-of select="description"/>
</xsl:for-each>
但结果会带来一些不需要的字符:
<!-- language: lang-html -->
<h3><a href="%0A http://site.com/page.htm%0A ">
我做错了什么?在此先感谢您的帮助。
答案 0 :(得分:2)
看起来源有URLEncoded换行符和一些空格。前导和尾随空格可以使用normalize-space()函数进行剥离。其他东西可能比较棘手,具体取决于它的规则程度,以及您正在使用的XSLT版本。如果URL始终以“%0A”结尾,则可以执行以下操作:
substring-before(substring-after(link, 'http'), "%")
如果您的网址永远不会包含URLEncoded数据(这可能不是一个安全的假设),这只会一直有效。如果您正在使用XSLT 2.0,请执行以下操作:
normalize-space(replace(link, '%0A', ''))
可能会更好。