Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.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
如何在TWebBrowser中以HTML格式显示rss提要的输出?_Html_Css_Delphi_Delphi Xe2_Twebbrowser - Fatal编程技术网

如何在TWebBrowser中以HTML格式显示rss提要的输出?

如何在TWebBrowser中以HTML格式显示rss提要的输出?,html,css,delphi,delphi-xe2,twebbrowser,Html,Css,Delphi,Delphi Xe2,Twebbrowser,我想在TWebBrowser组件中以格式化的HTML显示rss提要的输出,如果在TWebBrowser组件中加载此提要,则将内容显示为XML文件 但是如果我用IE加载同一个页面 我尝试向加载的IHTMLDocument2注入css,正如在这个问题中所建议的那样,但仍然得到相同的结果 问题是,如何在TWebbrowser中加载rss提要,但像IE一样将输出显示为HTML文档?IE正在对rss提要XML应用默认样式表和XSL转换。这是一个IE的东西,而不是一个标准或类似的东西 您需要自己做一些类

我想在TWebBrowser组件中以格式化的HTML显示rss提要的输出,如果在TWebBrowser组件中加载此提要,则将内容显示为XML文件

但是如果我用IE加载同一个页面

我尝试向加载的IHTMLDocument2注入css,正如在这个问题中所建议的那样,但仍然得到相同的结果


问题是,如何在TWebbrowser中加载rss提要,但像IE一样将输出显示为HTML文档?

IE正在对rss提要XML应用默认样式表和XSL转换。这是一个IE的东西,而不是一个标准或类似的东西


您需要自己做一些类似的事情,在页面显示之前对其进行修改。

只是一个猜测,但您可以尝试应用以下XSL样式表(摘自cherdt在下面的评论中的建议并进行了修改):


  • 到您正在接收的提要。要转换文档,请参阅,然后可以尝试将生成的XML分配给WebBrowser

    我猜您正在将WebBrowser控件指向提要,但是使用这种方法,您需要下载提要,例如使用Indy(签出
    TIdHTTP
    及其
    Get()
    方法),对其进行转换,然后在控件中显示

    请注意,以上只是一个猜测,但我相信这是一个很好的假设。:)

    <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, 0, 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>