我尝试将XSLT转换(如下所示)用于此类型的RSS但没有结果。那是为什么?
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:gd="http://schemas.google.com/g/2005" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/"CUACQXg6fyp7ImA9WhdUFUo."">
,它的结构是
<feed>
tags tags tags like <title></title>
<entry><published></published><title></title><content></content>....</entry>
</feed>
XSLT
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:include href="identity.xsl"/>
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*" />
</xsl:copy>
</xsl:template>
<xsl:template match="entry"/>
</xsl:stylesheet>
答案 0 :(得分:1)
您的样式表是为默认的XML命名空间(xmlns =“”)构建的。 RSS源具有定义的Atom(xmlns =“http://www.w3.org/2005/Atom”)命名空间,如果您具有嵌套的XML内容,则可能包含其他命名空间。
要“匹配”该命名空间中的任何内容,您还需要在样式表中定义它。您可能希望使用如下前缀定义Atom:xmlns:a =“http://www.w3.org/2005/Atom”。然后你的比赛将成为
<xsl:template match="a:entry"/>
此外,以上匹配条目,但您没有做任何事情。您可能希望它在您获得条目时打印出转换后的值,但上述内容只是将其从结果中排除。