使用 XForms 将 XML 元素作为 HTTP 标头发送
Posted
技术标签:
【中文标题】使用 XForms 将 XML 元素作为 HTTP 标头发送【英文标题】:Send XML element as HTTP header using XForms 【发布时间】:2012-11-13 06:53:14 【问题描述】:我对 XForms 还很陌生,所以请多多包涵。我想知道是否可以做到以下几点:
我有一个 html 表单
<form>
<input type="text" name="search-string"/>
<input type="checkbox" name="search1" checked="checked" />Search option 1
<input type="checkbox" name="search2" checked="checked" />Search option 2
<input type="submit" />
</form>
我想在 XForms 中表示它,并在提交时将其转换为 XML 元素,如下所示:
<data>
<search1>my search string</search1>
<search2>my search string</search2>
</data>
search1
和 search2
元素只有在设置了相应的复选框时才应设置,并且它们都使用来自 search-string
输入的字符串填充。
当data
元素构建完成后,我需要通过 POST http 请求发送它。
这一切都可以仅使用 XForms 来完成吗,还是我需要使用 JS 之类的?
PS:如果有什么不同,我正在使用 XSLTForms。
【问题讨论】:
【参考方案1】:是的,这可以通过 XForms 完成,无需额外的 javascript 指令。您需要两个实例:一个用于提交,另一个用于填充第一个。
模型部分应该是这样的:
<xf:model>
<xf:instance id="data">
<data xmlns="">
<search1/>
<search2/>
</data>
</xf:instance>
<xf:instance id="work">
<work xmlns="">
<b1 xsi:type="boolean"/>
<b2 xsi:type="boolean"/>
<search/>
</work>
</xf:instance>
<xf:bind nodeset="instance('data')/search1" calculate="choose(instance('work')/b1,instance('work')/search,'')"/>
<xf:bind nodeset="instance('data')/search2" calculate="choose(instance('work')/b2,instance('work')/search,'')"/>
<xf:submission ref="instance('data') method="post" resource=".........."/>
</xf:model>
-阿兰
【讨论】:
以上是关于使用 XForms 将 XML 元素作为 HTTP 标头发送的主要内容,如果未能解决你的问题,请参考以下文章