我正在尝试使用C#解析RSS提要,我需要使用XSLT对其进行转换。这是我的XSLT片段:
<xsl:output encoding="UTF-8" method="html" omit-xml-declaration="yes"/>
<xsl:template match="/">
<xsl:apply-templates select="rss/channel/item" />
</xsl:template>
<xsl:template match="rss/channel/item">
<item>
<link><xsl:value-of select="normalize-space(./link)" /></link>
</item>
</xsl:template>
使用random RSS (the corriere della serra),这可以正确呈现XML Spy:
<item>
<link>http://www.corriere.it/este(...)2aabc.shtml</link>
</item>
<item>
<link>http://www.corriere.it/cron(...)22a-11de-bb1e-00144f02aabc.shtml</link>
</item>
...
但是当使用Microsoft .net工具(使用我的代码或使用Visual Studio XSLT调试器)时,我得到:
<item>
<link>http://www.corriere.it(...)11de-aaa2-00144f02aabc.shtml
</item>
<item>
<link>http://corrieredelmezzogiorno.corriere.it/le(...)03131900.shtml
</item>
<item>
根本不输出</link>
标记。如果我更改“XXX”的“链接”,这可以很好地工作,但遗憾的是这不是一个选项。
知道这里发生了什么???
答案 0 :(得分:1)
对于那些想知道的人,msxml在method="html"
模式下不会关闭链接标记。如果您将第一行更改为
<xsl:output encoding="UTF-8" method="xml" omit-xml-declaration="yes"/>
以上代码完美无缺......