阅读 XML RSS 提要 Sharepoint 2013 时将 HTML 标签呈现为 HTML

Render HTML tags as HTML when read through XML RSS feed Sharepoint 2013

有类似的问题,但 none 使用 SharePoint 和 XSL 编辑器。

我有一个 RSS 提要,它可以提取文章标题以及随附的 html 标签,如下所示:

<i>Wall Street Journal</i> Article on Competition in the Dental Industry

我希望将那些 <i>(以及任何其他 HTML 标签)读作 HTML,而不是文本..i.e 的最终结果:

Wall Street Journal Article on Competition in the Dental Industry

我可以阅读和 semi-reverse 工程师 XML,但写它是另一回事。

任何帮助将不胜感激。

下面是我认为需要更改的代码示例:

<xsl:template name="RSSMainTemplate.body" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
        <xsl:param name="Rows"/>
        <xsl:param name="RowCount"/>
        <xsl:for-each select="$Rows">
            <xsl:variable name="CurPosition" select="position()" />
            <xsl:variable name="RssFeedLink" select="$rss_WebPartID" />
            <xsl:variable name="CurrentElement" select="concat($RssFeedLink,$CurPosition)" />
            <xsl:if test="($CurPosition &lt;= $rss_FeedLimit)">
                <div class="item link-item" >
                        <a href="{concat(&quot;javascript:ToggleItemDescription('&quot;,$CurrentElement,&quot;')&quot;)}" >
                            <xsl:value-of select="title"/>
                        </a>
                        <xsl:if test="$rss_ExpandFeed = true()">
                            <xsl:call-template name="RSSMainTemplate.description">
                                <xsl:with-param name="DescriptionStyle" select="string('display:block;')"/>
                                <xsl:with-param name="CurrentElement" select="$CurrentElement"/>
                            </xsl:call-template>
                        </xsl:if>
                        <xsl:if test="$rss_ExpandFeed = false()">
                            <xsl:call-template name="RSSMainTemplate.description">
                                <xsl:with-param name="DescriptionStyle" select="string('display:none;')"/>
                                <xsl:with-param name="CurrentElement" select="$CurrentElement"/>
                            </xsl:call-template>
                        </xsl:if>
                </div>                            
            </xsl:if>
        </xsl:for-each>
    </xsl:template>

想通了。

这个问题的关键是disable-output-escaping属性。我对问题的位置是正确的。下面是我调整后的代码。注意第 10-15 行

xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<xsl:param name="Rows"/>
<xsl:param name="RowCount"/>
<xsl:for-each select="$Rows">
  <xsl:variable name="CurPosition" select="position()" />
  <xsl:variable name="RssFeedLink" select="$rss_WebPartID" />
  <xsl:variable name="CurrentElement" select="concat($RssFeedLink,$CurPosition)" />
  <xsl:if test="($CurPosition &lt;= $rss_FeedLimit)">
    <div class="item link-item" >
      <a href="{concat(&quot;javascript:ToggleItemDescription('&quot;,$CurrentElement,&quot;')&quot;)}" >
        <xsl:variable name="SafeHtml">
          <xsl:call-template name="GetSafeHtml">
            <xsl:with-param name="Html" select="title"/>
          </xsl:call-template>
        </xsl:variable>
        <xsl:value-of select="$SafeHtml" disable-output-escaping="yes"/>
      </a>
      <xsl:if test="$rss_ExpandFeed = true()">
        <xsl:call-template name="RSSMainTemplate.description">
          <xsl:with-param name="DescriptionStyle" select="string('display:block;')"/>
          <xsl:with-param name="CurrentElement" select="$CurrentElement"/>
        </xsl:call-template>
      </xsl:if>
      <xsl:if test="$rss_ExpandFeed = false()">
        <xsl:call-template name="RSSMainTemplate.description">
          <xsl:with-param name="DescriptionStyle" select="string('display:none;')"/>
          <xsl:with-param name="CurrentElement" select="$CurrentElement"/>
        </xsl:call-template>
      </xsl:if>
    </div>
  </xsl:if>
</xsl:for-each>
<div class="description">
  <h4 class="ms-rteElement-H4B">
    <span class="ms-rteStyle-Emphasis">
      <br></br>View More Articles&#160;<img alt="more-icon-1.png" src="/BHiveImageGallery/Stock-Images/more-icon-1.png"/>
    </span>
    <span class="ms-rteStyle-Emphasis"> </span>
  </h4>
</div>

我的完整代码太长且格式太独特,无法在 window 中按我的意愿显示。现在是 2015 年 3 月 20 日,如果你在未来 5 年内给我发消息,我可以将代码发送给你,除此之外,不能保证哈哈。

虽然我使用的是 SharePoint 2013 标准 RSS 查看器 web 部件代码,但只修改了上面的部分