0

我正在构建一个以 eXist 作为后端的 web 应用程序。我想用 xf:load 元素加载一个新的资源。

我所做的是这样的:

<xf:trigger>
  <xf:label>Trigger</xf:label>
    <xf:action ev:event="DOMActivate">
     <xf:load>
       <xf:resource value="concat('start.xql?floor={$floor}&amp;room={$room}', '')" />
     </xf:load>
    </xf:action>
</xf:trigger>

但是当我点击触发器时,这个 url 被加载:

start.xql?floor=0&amp;room=E.01

这显然是不希望的。当我不逃避 & 符号时,我得到一个解析错误:

Invalid character in entity name (=) or missing ;

那么,通过 xf:load 元素传递多个参数的正确方法是什么?我可以用&符号解决这个问题还是我只是错过了什么?

感谢您的帮助

亲切的问候克里斯蒂安

4

2 回答 2

0

我在更改资源/@value 的 XPath 表达式后检查了 XSLTForms,因为实际上不需要 AVT……而且因为 XSLTForms 还不支持变量:

<xf:resource value="concat('start.xql?floor=',floor,'&amp;room=',room)"/>

FireBug 网络分析器说:

http://localhost/xsltforms/trunk/src/testsuite/misc/start.xql?floor=FL&room=RM

因此,我认为您最好将此问题发布到您正在使用的 XForms 实现的支持列表中。

-阿兰

于 2012-05-22T20:08:48.217 回答
0

您确定这是发送的 URL 吗?

在一般的 XML 文档中,即使它们在 URI 值中使用但它们的字符串值仍然存在,也&必须编写,并且将提交请求的软件(在这种情况下是 XForms 处理器)不应该混淆......&amp;&

无论如何,在 XForms 中还有另一种处理查询字符串的方法,您也可以通过 HTTP get 提交带有查询字符串的实例。以下提交:

应该照顾这些&符号“细节”。您可以通过以下方式调用它:

<xf:trigger>
  <xf:label>Trigger</xf:label>
  <xf:send ev:event="DOMActivate" submission="trigger-submission"/>
</xf:trigger>

当然,假设正确的值已放置在实例中。

于 2012-05-22T17:53:32.410 回答