2012-05-30 1 views
1

Мне нужна помощь по возврату ссылок в формате XML для отображения на веб-сайте. В настоящее время я используюПоиск текстовых элементов в XSL и создание гиперссылки

<xsl:for-each select="Summary/text"> 
    <p> 
    <xsl:value-of select="self::*"/> 
    </p> 

Это захватывает каждый абзац и отступает от него должным образом. Это отлично работает, за исключением ссылок, которые мы получаем. Я немного смущен тем, что делать. Текст мне нужно отображаться в виде гиперссылки показывает, как отдельный пункт так:

<a href=http://www.google.com</a> 

Так я думал, что я назвал бы шаблон, чтобы сделать это.

 <xsl:template name="hyperlink"> 
    <xsl:param name="text"/> 
    <xsl:choose> 
     <xsl:when test="contains($text,'href=http://')"> 
      <a> 
       <xsl:attribute name="href"> 
        <xsl:value-of select="substring($text, 8, 500)"/> 
       </xsl:attribute> 
      </a> 
     </xsl:when> 
     <xsl:otherwise> 
      <xsl:value-of select="self::*"/> 
     </xsl:otherwise> 
    </xsl:choose> 
</xsl:template> 

Я не знаю, если $ текст или 'href=http://' прав. Когда я пытаюсь использовать contains('<a href') для тестирования, я получаю ошибки. Я был бы признателен за толкание в правильном направлении. Я не думаю, что я использую правильные утверждения, чтобы сделать эту работу.

+1

Так что, если я понять ваш вопрос правильно, то проблема появляется, когда вы получите ссылки, которые не совсем действительный (например, тот, который вы указали в своем сообщении)? – Lukasz

+0

Не могли бы вы показать нам образец вашего ввода xml вместе с ожидаемым выходом? Также, какую версию XSLT вы используете и какой движок? –

ответ

0

Попробуйте выбрать фактическую длину строки в HREF использованием длины строки:

substring($text, 8, string-length($text) - 13) 
Смежные вопросы