在HTML属性中使用XSL参数值

时间:2019-01-16 07:56:09

标签: xml xslt apache-cocoon

我的表单如下所示

        <form method="get"  action="change"  target="frame">
            <select name="fill" >
                <option>red</option>
                <option>green</option>
                <option>yellow</option>
                <option>pink</option>                                   
            </select>

        <input type="submit" value="darstellen"/>
        </form>

        <iframe name="frame">

        </iframe>

我希望表单将颜色发送到另一个包含矩形的XSL文件。 到目前为止,将颜色传递到其他XSL文件都可以,但是现在我想动态更改矩形的填充颜色,但是使用传递的参数将无法工作。

<map:match pattern="change">

<map:generate src="square.svg"/>

<map:transform src="recchange.xsl">

    <map:parameter name="use-request-parameters" value="true"/>

</map:transform>

<map:serialize type="html"/>

这是我的站点地图

<xsl:param name="fill"/>
<xsl:output method="html"/>

<xsl:template match="/">
<html>
    <body>

        <h2><xsl:value-of select="$fill"/></h2>
        <h1>testtest</h1>
        <svg>
              <rect width="300" height="100" style="fill:$fill;stroke-width:3;stroke:red">
              </rect>
        </svg>

这是我到目前为止所尝试的。有人有建议吗?

1 个答案:

答案 0 :(得分:2)

您可以在此处使用Attribute Value Templates来评估$fill变量并将其值直接输出到属性字符串中

 <rect width="300" height="100" style="fill:{$fill};stroke-width:3;stroke:red">

因此,花括号在此处代表属性值模板。