如果参数匹配,XSLT会更改标记的值

时间:2013-08-02 07:14:00

标签: java xslt

我的任务是重写表单" action"参数从相对URL更改为绝对URL。另外,我以相同的形式检查"方法"是" GET"我将其更改为post并且必须使用原始方法值传递额外的隐藏参数。例如:

<form name="my_form" action="submitForm.action" method="get">
    some fields
</form>

这应该改为:

<form name="my_form" action="http://localhost:8080/submitForm.action" method="POST">
    <input type="hidden" name="method" value="get"/>
    some fields
</form>

是否可以通过XSLT进行更改?在那种情况下,我的XSLT可能是什么?我尝试了各种选项,但我只能更改FORM的一个参数,并且不知道如何添加额外的字段来形成。

我正在使用Java来重写和转换。

提前致谢。

-Rikin

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您正尝试使用xsl将HTML转换为HTML。

您可能需要写一个像这样的xsl:

<xsl:template match="/form">
    <xsl:variable name="abs-action" select="concat('http://blablabla:8080/', @action)"/>
    <form method="POST">
        <xsl:attribute name="name" select="@name"/>
        <xsl:attribute name="action" select="$abs-action"/>
        <input type="hidden" name="hidden-input"></input>
    </form>
</xsl:template>

您可以通过xsl始终包围此代码的部分内容:if来测试表单的属性(例如“method”属性)。

希望这有点帮助。

特里斯坦