XSL Substring-before с символами HTML

Я добавляю RSS-ленту, которая содержит шутку, за которой следует несколько ссылок, чтобы поделиться этой шуткой с различными сервисами. Как показано ниже:

введите описание изображения здесь

Возможно, стоит отметить, что когда я пытался скопировать и вставить текст из этого вывода, ссылки не копировались в блокнот, а вставлялись как рисунки в MS Word.

В моем XSL я использую substring-before в попытке исключить эти ссылки из моего вывода, но единственный непротиворечивый символ, который я могу использовать, это <a href от гиперссылок, которые всегда будут в конце. Это возможно? Мой первый проход на этом не удался, есть ли какой-нибудь экранирующий символ, который я должен включить?

Возможно, я просто постараюсь исключить последнее X символы для удаления ссылок

К сожалению, я не смог найти и версию 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>

Я отображаю вывод через веб-часть RSS-канала SharePoint 2013

1 ответ

Решение

Пытаясь просмотреть правильный XML, я нашел решение. Я просмотрел исходный URL страницы для моего исходного 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....

Дело в том, что HREF не имеет < он использует разметку HTML &lt;,

substring-before(description, '&lt;a href') работает.

Другие вопросы по тегам