2012-05-30 90 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> 

我不知道是否$ text或'href=http://'是正確的。當我嘗試使用contains('<a href')進行測試時,出現錯誤。我會很高興在正確的方向推動。我不認爲我正在使用正確的語句來完成這項工作。

+1

所以,如果我理解正確你的問題,當你是不太環節出現問題有效(就像你在帖子中引用的那個)? – Lukasz

+0

您可以向我們展示您的xml輸入樣本以及預期輸出嗎?您使用的是什麼版本的XSLT以及什麼引擎? –

回答

0

嘗試使用字符串長度選擇HREF字符串的實際長度:

substring($text, 8, string-length($text) - 13) 
相關問題