我想在TWebBrowser组件中以格式化
HTML显示RSS Feed的输出,如果在TWebbrowser中加载此Feed
http://code.google.com/feeds/p/v8/svnchanges/basic,则将内容显示为XML文件
但如果我使用IE加载相同的页面
我尝试在加载的IHTMLDocument2中注入一个css,正如在这个问题CSS and TWebbrowser delphi中所建议的那样,但我仍然得到相同的结果.
解决方法
只是猜测,但您可以尝试应用以下XSL样式表(取自
http://snippets.dzone.com/posts/show/1162并按照以下评论中的cherdt的建议进行修改):
<xsl:stylesheet version="1.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dc="http://purl.org/dc/elements/1.1/"> <xsl:output method="html"/> <xsl:template match="/"> <xsl:apply-templates select="/atom:Feed/atom:head"/> <xsl:apply-templates select="/atom:Feed"/> </xsl:template> <xsl:template match="atom:Feed/atom:head"> <h3><xsl:value-of select="atom:title"/></h3> <xsl:if test="atom:tagline"><p><xsl:value-of select="atom:tagline"/></p></xsl:if> <xsl:if test="atom:subtitle"><p><xsl:value-of select="atom:subtitle"/></p></xsl:if> </xsl:template> <xsl:template match="/atom:Feed"> <h3><xsl:value-of select="atom:title"/></h3> <xsl:if test="atom:tagline"><p><xsl:value-of select="atom:tagline"/></p></xsl:if> <xsl:if test="atom:subtitle"><p><xsl:value-of select="atom:subtitle"/></p></xsl:if> <ul> <xsl:apply-templates select="atom:entry"/> </ul> </xsl:template> <xsl:template match="atom:entry"> <li> <a href="{atom:link[@rel='related']/@href}" title="{substring(atom:published,11)}"><xsl:value-of select="atom:title"/></a> <xsl:choose> <xsl:when test="atom:content != ''"> <p><xsl:value-of select="atom:content" disable-output-escaping="yes" /></p> </xsl:when> <xsl:otherwise> <p><xsl:value-of select="atom:summary" disable-output-escaping="yes" /></p> </xsl:otherwise> </xsl:choose> </li> </xsl:template> </xsl:stylesheet>
到你收到的饲料.要转换文档,请参阅this question’s selected answer,然后您可以尝试将生成的XML分配给WebBrowser.
我猜你将WebBrowser控件指向Feed,但是使用这种方法你需要使用例如Indy(检查TIdHTTP及其Get()方法)下载Feed,转换它,然后显示在你的控制.
请注意,以上只是一个猜测,但我相信这是一个很好的假设.