我定义的变量是作为字符串传递的,而不是传播值。
资源
<?xml version="1.0"?>
<results>
<result>
<title_id>
123456
</title_id>
<product_id>
2
</product_id>
<track_id>
5
</track_id>
</result>
</results>
XSL
<html xsl:version="1.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>Link</b></td>
</tr>
<xsl:for-each select="//results/result">
<xsl:variable name="titlevar" select="title_id" />
<xsl:variable name="productvar" select="product_id" />
<xsl:variable name="trackvar" select="track_id" />
<tr>
<td><a href="{concat('http://www.myaddress/', '$titlevar', '-', '$productvar', '/?', '$trackvar')}" target="_blank">link</a></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
输出:http://www.myaddress/$titlevar-$productvar/?$trackvar
我想要的是:http://www.myaddress/123456-5/?2
. 我尝试过各种括号、撇号和语音标记。谁能看到它为什么不起作用?