1

私が定義した変数は、値を伝播するのではなく、文字列として渡されます。

ソース

<?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. 私はあらゆる種類の括弧、アポストロフィ、およびスピーチマークを試しました。なぜ機能しないのか誰にもわかりますか?

4

2 に答える 2