如何在XSLT中获取链接的某些部分

时间:2015-03-27 17:57:21

标签: xml xslt

XML:

<col>
    <Html>
        <root>
            <Pro>
                <a title="" href="/pro.aspx?id=0098">And, Jo</a>
            </Pro>
        </root>
    </Html>
    <Html>
        <root>
            <Pro>
                <a title="" href="/pro.aspx?id=0098">And, Jo</a>
            </Pro>
        </root>
    </Html>
    <Html>
        <root>
            <Pro>
                <a title="" href="/pro.aspx?id=0098">And, Jo</a>
            </Pro>
        </root>
    </Html>
</col>

如何从上面获取0098并使用XSLT创建链接。

XSLT:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template name="dispSpec" match="/">
        <xsl:for-each select="col/Html/root">
            <div class="justPad">
                <a class="link1" href="anotherpage.aspx?id={0098}">Click Here</a>
            </div>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>

1 个答案:

答案 0 :(得分:2)

我相信你想用:

substring-after(@href, 'id=')

你没有提供任何背景信息,所以只有这个。


编辑:

(响应您的修改)

尝试将模板更改为:

<xsl:template match="/">
    <xsl:for-each select="col/Html/root">
        <div class="justPad">
            <a class="link1" href="anotherpage.aspx?id={substring-after(Pro/a/@href, 'id=')}">Click Here</a>
        </div>
    </xsl:for-each>
</xsl:template>

注意

  1. 您的样式表会创建一个包含多个div元素且没有单个根元素的文档。也许这对目标应用程序来说很好,但需要指出;

  2. 我不明白为什么你的模板需要命名;你在任何时候都是通过名字来呼叫它(似乎不太可能)?