0

エラーが発生します:

{...get-request-parameter('query..} 内の ... での XPath 構文エラー: { http://orbeon.org/oxf/xml/xforms }get-
という名前の一致する 1 つの引数の関数が見つかりませんrequest-parameter(). 注: 外部関数呼び出しは無効になっています

次のコマンドでパイプラインを実行しようとすると:

<p:processor name="oxf:xslt">
    <p:input name="config">
        <xsl:stylesheet version="2.0">
            <xsl:template match="/">
                <TargetURL>
                    <xsl:variable name="location" select="/Configuration/XMLDB/Location/text()"/>                           
                    <xsl:variable name="name" select="/Configuration/XMLDB/Name/text()"/>                           
                    <xsl:variable name="query" select="xxforms:get-request-parameter('query')"/>                           
                    <xsl:value-of select="fn:concat($location,'/',$name,'?',$query)"/>
                </TargetURL>
            </xsl:template>
        </xsl:stylesheet>
    </p:input>
    <p:input name="data" href="#configuration"/>
    <p:output name="data" id="Target"/>
</p:processor>

XPL は、HTTP 要求パラメーターを取得するための正しい場所ではありませんか (代わりに page-flow.xml で行う必要がありますか?)

4

2 に答える 2

1

XPL で oxf:request プロセッサを使用してクエリ パラメータを取得し、別の出力でそれらを提供することで解決しました。次に、oxf:xslt プロセッサを使用してアクセスします。

<p:processor name="oxf:request">
    <p:input name="config">
        <config>
            <include>/request/parameters/parameter[name='param1']</include>
            <include>/request/parameters/parameter[name='param2']</include>
        </config>
    </p:input>
    <p:output name="data" id="request"/>
</p:processor>


<p:processor name="oxf:xslt">
    <p:input name="config">
        <xsl:stylesheet version="2.0">
            <xsl:template match="/">
                <TargetURL>
                    <xsl:variable name="var1" select="doc('input:request')/request/parameters/parameter[name='param1']/value"/>
                    <xsl:variable name="var2" select="doc('input:request')/request/parameters/parameter[name='param2']/value"/>                         
                </TargetURL>
            </xsl:template>
        </xsl:stylesheet>
    </p:input>
    <p:input name="data" href="#configuration"/>
    <p:input name="request" href="#request"/>
    <p:output name="data" id="Target"/>
</p:processor>
于 2011-02-09T11:44:46.340 に答える
0

xxforms:get-request-parameter()は XForms から呼び出されるように設計されていますが、ここでは XSLT から呼び出しています。

この場合、本当に XPL/XSLT を使用する必要がありますか? ほとんどの場合、生成しているのが Web ページであれば、XForms を使用するだけでよいでしょう。ページ フローでは、view属性を使用して XForms を指定します。XForms ではxforms-model-construct-done、 でリクエスト パラメータにアクセスし、xxforms:get-request-parameter()必要に応じてインスタンスのどこかにその値をコピーできます。

于 2011-01-03T01:03:03.687 に答える