XSL Substring-before与HTML字符

时间:2017-04-27 12:06:40

标签: xslt rss substring sharepoint-2013 html-escape-characters

我正在提取一个RSS源,其中包含一个笑话,后跟一些链接,分享不同服务上的笑话。如下图所示:

enter image description here

值得注意的是,当我尝试从此输出中复制并粘贴文本时,链接未复制到记事本中,并作为图片粘贴到MS Word中。

  

在我的XSL中,我使用substring-before试图从输出中排除这些链接,但我能想到的唯一一致的字符是来自超链接的<a href,它始终是在末尾。这可能吗?我的第一次传球失败了,我应该包括一个逃脱角色吗?

也许我会尝试排除最后X个字符以删除链接

很遗憾,我找不到Feed的XML版本,我的来源是:http://feeds.feedburner.com/DailyJokes-ACleanJokeEveryday?format=xml

这是我正在使用的XSL,它目前是硬编码在最近的笑话结束时打破(我的下一个障碍是遍历此列表)

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
  <xsl:template match="/">
    <xsl:apply-templates select="//item[position() &lt; 2]"/>
  </xsl:template>

  <xsl:template match="item">
    <content-item>
      <h1><xsl:value-of select="title"/></h1>     
          <p><xsl:value-of select="substring-before(description, 'mower')" disable-output-escaping="yes"/></p>
      <br/><br/>
      <p>"The following is here for testing purposes and will be removed"<br/><br/><xsl:value-of select="substring-after(description, 'lawn')" disable-output-escaping="yes"/></p>
      <br/><br/>
    </content-item>
  </xsl:template>
</xsl:stylesheet>

我通过SharePoint 2013 RSS提要Web部件呈现输出

1 个答案:

答案 0 :(得分:0)

在尝试查看正确的XML时,我发现了解决方案。我查看了源URL的页面源,并且我看到最终字符显示如下:

    <title>Hunting with a wife #Joke #Humor</title><description>A hunter visited another hunter and was given a tour of his home. In the den was a stuffed lion.&lt;br /&gt;&lt;br /&gt;The visiting hunter asked, "when did you bag him?"&lt;br /&gt;&lt;br /&gt;The host said, "that was three years ago, when I went hunting with my wife."&lt;br /&gt;&lt;br /&gt;"What's he stuffed with," asked the visiting hunter. "My wife."&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DailyJokes-ACleanJokeEveryday?a=RT1LsKVBV3Y:0LcrJjJq2X4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DailyJokes-ACleanJokeEveryday?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href....
  

关键是,a href没有<它使用HTML标记&lt;

     

substring-before(description, '&lt;a href')有效。