Обрезать первые 10 символов от заголовка RSS-канала - PullRequest
0 голосов
/ 22 июля 2010

Я пытаюсь написать xsl для стилизации RSS-канала. Мне нужно обрезать первые 10 символов от названия каждого элемента.

<?xml version="1.0" encoding="ISO-8859-1"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/rss">
<ul>
<xsl:for-each select="channel/item">
<li><strong><xsl:value-of select="title"/>
</strong>
<a href="{link}">More</a></li>
</xsl:for-each>
</ul>
</xsl:template>

<xsl:template name="trimtitle">
<xsl:param name="string" select="." />
<xsl:if test="$string">
<xsl:text>Foo</xsl:text>
<xsl:call-template name="trimtitle">
<xsl:with-param name="string" select="substring($string, 10)" />
</xsl:call-template>
</xsl:if>
</xsl:template>

<xsl:template match="title">
<xsl:call-template name="title" />
<xsl:value-of select="." />
</xsl:template>


</xsl:stylesheet>

Ответы [ 2 ]

1 голос
/ 25 июля 2010

Что ты делаешь в своем шаблоне титров?Почему вы называете trimtitle recursive ..?

Самый простой способ показать обрезанную строку - это:

<xsl:value-of select="substring(title,0,10)"/>
1 голос
/ 23 июля 2010

Я думаю, вы должны написать свою функцию подстроки следующим образом:

подстрока ($ string, 1, 10)

Посмотрите здесь

http://www.zvon.org/xxl/XSLTreference/Output/function_substring.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...