나는 RSS 뉴스 피드를 가지고있다. 헤드 라인과 스토리의 처음 350자를 전체 스토리에 대한 링크와 함께 표시하고 싶습니다. 그러나 350 번째 문자가 HTML 태그의 중간에있는 경우 (예 : <img ...
또는 <h2>
) 출력 HTML이 끊어지고 링크가 작동하지 않습니다. 여기 내 XSLHTML 태그를 보존하면서 XML 피드를 XSL에서 다듬을 수 있습니까?
<xsl:output method="html" omit-xml-declaration="yes"/>
<xsl:template match="/">
<div>
<xsl:for-each select="//rss/channel/item">
<h2><xsl:value-of select="title" disable-output-escaping="yes"/></h2><br />
<xsl:value-of select="substring(description, 1, 350)" disable-output-escaping="yes"/><xsl:text>...</xsl:text>
<a><xsl:attribute name="href"><xsl:value-of select="link" disable-output-escaping="yes"/>
<xsl:text disable-output-escaping="yes">?tmpl=component&print=1</xsl:text>
</xsl:attribute>Read more</a>
<br />
<xsl:value-of select="substring(pubDate,1,16)"/><br />
<br/>
<br/>
</xsl:for-each>
</div>
</xsl:template>
한 노트 : HTML 태그를 무시하고 싶지 않습니다. 이미지가 있으면 그 이미지를 포함시키고 싶습니다.
나는 비슷한 질문을 여기에서 찾았지만 그 중 아무 것도 나를 위해 일하지 않은 것 같습니다. 어떤 도움을 주셔서 감사합니다.
중복 가능성 http://stackoverflow.com/questions/10585133/trim-mixed-content-to-max-number-of-characters- 와 - XSLT) –
나는 BBC 뉴스에서 피드에 XSL을 시도 (http://feeds.bbci.co.uk/news/video_and_audio/news_front_page/rss.xml?edition=uk) 그것은 잘 작동 , 나는 생각한다. 귀하의 링크에 이미 물음표가 포함되어있을 수 있습니다. 그러면 물음표를 앰퍼샌드에 추가해야합니다. –
Yves B, 350 번째 문자가 HTML 태그의 중간에있는 경우에만 거의 발생하지 않습니다. Dimitre Novatchev, 저것 좀 봐야 겠어, 고마워. – dwarbi