2012-04-06 33 views
0

我正在使用XSLT在XHTML中转换RSS文件。 为了创建我用的代码块的链接:使用XSLT将RSS转换为XHTML - 如何删除奇怪的字符?

<!-- 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   "> 

我在做什么错?在此先感谢您的帮助。

+1

请你可以编辑问题并添加你想要转换的XML吗? – andyb 2012-04-06 16:38:31

+0

我正在使用这个XML:http://feeds.jn.pt/JN-ULTIMAS 谢谢 – notGeek 2012-04-06 16:42:02

+0

@andre仔细阅读andyb的请求。 – Marcin 2012-04-06 16:45:57

回答

2

它看起来像来源有URLEncoded换行符和一些空白字符。使用normalize-space()函数可以剥离前导空白和尾随空白。其他的东西可能会更棘手,这取决于它是多么规则,以及您使用的是哪个版本的XSLT。如果URL始终以“%0A”结束了,你可以这样做:

substring-before(substring-after(link, 'http'), "%") 

这只会工作,如果您的网址永远不会在他们urlencoded的数据(这可能不是一个安全的所有的时间假设)。如果您使用的是XSLT 2.0,如下所示:

normalize-space(replace(link, '%0A', '')) 

可能会更好。

+0

它工作正常!非常感谢 – notGeek 2012-04-06 17:04:04