【问题标题】:XSLT change the value of a tag if parameter matches如果参数匹配,XSLT 会更改标记的值
【发布时间】:2013-08-02 07:13:59
【问题描述】:

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

<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进行重写和转换。

提前致谢。

-瑞金

【问题讨论】:

    标签: java xslt


    【解决方案1】:

    如果我理解正确,您正在尝试使用 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 包围这段代码的一部分来测试表单的属性(例如“方法”属性)。

    希望这会有所帮助。

    特里斯坦

    【讨论】:

    • 感谢特里斯坦的回复。可能是我的错误,我可能不够清楚。我的要求有点不同。要重写动作参数,我必须使用 Java 代码。此外,表单有许多字段,如问题所示。我觉得这样它会覆盖其他参数!
    猜你喜欢
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-07
    • 1970-01-01
    • 2020-05-30
    • 1970-01-01
    • 2017-06-24
    相关资源
    最近更新 更多