Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用XSLT将RSS发送到XHTML-如何删除奇怪字符?_Xslt_Xhtml_Rss_Href - Fatal编程技术网

使用XSLT将RSS发送到XHTML-如何删除奇怪字符?

使用XSLT将RSS发送到XHTML-如何删除奇怪字符?,xslt,xhtml,rss,href,Xslt,Xhtml,Rss,Href,我正在使用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="descripti

我正在使用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            ">


我做错了什么?提前感谢您的帮助。

看起来源代码中有URL编码的换行符和一些空格。可以使用normalize-space()函数剥离前导和尾随空格。其他东西可能更复杂,这取决于它的规则性以及您使用的XSLT版本。如果URL始终以“%0A”结尾,则可以执行以下操作:

substring-before(substring-after(link, 'http'), "%")
normalize-space(replace(link, '%0A', ''))
只有当您的URL中永远不会有URL编码的数据时(这可能不是一个安全的假设),这才会一直有效。如果您使用的是XSLT 2.0,则类似于:

substring-before(substring-after(link, 'http'), "%")
normalize-space(replace(link, '%0A', ''))

可能会更好。

请编辑问题并添加要转换的XML,好吗?我使用以下XML:Thanks@andre仔细阅读andyb的请求。