在XSL中搜索文本元素并创建超链接

时间:2012-05-30 19:08:57

标签: xml xslt

我需要帮助获取以XML格式返回的链接以显示在网站上。目前我正在使用

    <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 个答案:

答案 0 :(得分:0)

尝试使用 string-length 选择 href 字符串的实际长度:

substring($text, 8, string-length($text) - 13)