【问题标题】:Sending multiple emails from within Orbeon Forms从 Orbeon Forms 中发送多封电子邮件
【发布时间】:2015-03-06 14:31:08
【问题描述】:

在 Orbeon Forms 4.8 上,我重新构建了 email-form.xpl,以便它根据表单中的各种条件构建不同的电子邮件。这很好用,它甚至可以将表单信息嵌入到它创建的电子邮件中。正如 Orbeon 电子邮件处理器所期望的那样,我已经创建了一组结构良好的结构。它们都被包裹在一个标签中,所以我有类似...的东西。

在实际调用电子邮件处理器时,我需要通过 XML 结构一次调用电子邮件处理器处理一条消息。下面的代码是我必须执行的操作,我可以从调试中看到它正确接收我的消息,但是一旦我检查处理器内部,所有 XML 标记都已被剥离,并且电子邮件处理器将不接受输入(我知道如果它完全有效,它只会发送第一条消息),因为它说它是一个不完整的内容模型。

<p:processor name="oxf:pipeline">
    <p:input
        name="config"
        href="#messages"
        transform="oxf:unsafe-xslt"
        debug="LOOPING THROUGH EMAIL MESSAGES - MESSAGES">
        <p:config xsl:version="2.0">
            <p:param type="input" name="messages"/>

            <xsl:message>
                XXXXX
                <xsl:value-of select="messages/message"/>
                XXXXX
            </xsl:message>

            <xsl:for-each select="/*/message">
                <p:processor name="oxf:email">
                    <p:input name="data">
                        <message>
                            <xsl:value-of select="messages/message"/>
                        </message>
                    </p:input>
                </p:processor>
            </xsl:for-each>
        </p:config>
    </p:input>
</p:processor>

显然我做错了什么,但我不明白是什么。

【问题讨论】:

    标签: orbeon


    【解决方案1】:

    要通过 XSLT 打印 XML,请使用 &lt;xsl:copy-of&gt; 而不是 &lt;xsl:value-of&gt;。后者总是采用 XML 的 字符串值,它只查看文本节点。前者复制 XML 树。

    电子邮件处理器一次只能发送一封电子邮件。因此,需要遍历您通过 XSLT 创建的 &lt;message&gt; 元素。迭代必须在 XPL 中完成,所以必须使用 &lt;p:for-each&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-08
      • 2016-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-17
      • 1970-01-01
      相关资源
      最近更新 更多