XSLT创建超链接http url搜索查询。连接不起作用

时间:2013-02-20 01:25:08

标签: xslt xml-parsing concatenation

我是编码的新手,这是我的第一个问题。我已经搜索并尝试了每个可能的连接示例。

我正在使用XSLT在生成的表的最后一列中创建一个超链接,其结果/行为与...相同[

<a href="http://www.mysite.com/search/?q[all][]=123456" target="_blank">link</a>

123456来自<title_id>。我可以在上一列中返回标题ID,但是将其作为搜索查询附加到超链接是很困难的。

我有XML(简体):

<response>

    <results>

        <result>

            <tracks>

                <track>

                    <title_id>123456</title_id>

                    <product_id>2</product_id>

                    <track_id>3</track_id>

我让XSL从XML中提取我需要的内容,并为web创建一个表...

 <html xsl:version="2.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
     xmlns="http://www.w3.org/1999/xhtml">

 <body>
 <table border="1" cellpadding="4" cellspacing="0">
 <tr bgcolor="#fb0006" align="center">
  <td><b>#</b></td>
  <td><b>Artist</b></td>
  <td><b>Track</b></td>
  <td><b>Remix</b></td>
  <td><b>ID</b></td>
  <td><b>Link</b></td>
</tr>

 <xsl:for-each select="//response/results/result/tracks/track">

 <tr>
  <td><xsl:number value="position()" format="01" /></td>
  <td><xsl:value-of select="bundle_mirror_artists"/></td>
  <td><xsl:value-of select="track_title"/></td>
  <td><xsl:value-of select="track_mix_title"/></td>
  <td><xsl:value-of select="title_id"/></td>
  <td><a href="{concat('http://www.mysite.com/search/?q[all][]=', '<xsl:value-of select="title_id"/>')}" target="_blank">link </a></td>
 </tr>

 </xsl:for-each>

 </table>
 </body>
 </html>

除了最后一个<td>之外,一切都有效,它们无法返回任何内容或无法解析。

非常感谢帮助。

1 个答案:

答案 0 :(得分:0)

也许尝试将第二个参数变为变量。

<xsl:variable name="title" select="title_id" />

然后将$title作为第二个参数传递给concat。

另外我认为您的HTML可能需要&lt; a href =“...”&gt;标签正确关闭。