0

私はexist-dbサーバーでXSLTformsを使用しており、インスタンスをソートしようとしています。モデルの例を次に示します。

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xf="http://www.w3.org/2002/xforms">
<head>
    <xf:model>
        <xf:instance xmlns="" id="default">
            <data>
                <x>
                    <a>B</a>
                    <a>C</a>
                    <a>A</a>
                </x>
            </data>
        </xf:instance>
    </xf:model>
</head>

そのような結果を得るために xf:repeat の要素をソートすることは可能ですか?

  • B

この例を使用してみましたが、残念ながら、プロジェクトにコピーすると機能しません。

https://github.com/AlainCouthures/xsltforms/blob/master/testsuite/xforms-examples/03-output/sorting/sort.xhtml

https://github.com/AlainCouthures/xsltforms/blob/master/testsuite/xforms-examples/13-javascript/xslt-sort.xhtml

私は xforms を初めて使用し、これらの例が機能しない理由がわかりません。そのため、誰かが私に実際の例を教えてくれたり、xsltforms でデータをソートする正しい方法を教えてくれたりすると、非常にありがたいです。

前もって感謝します!

4

1 に答える 1

2

残念ながら、XForms 仕様にはデータの並べ替えに関する記述はなく、XSLT を回避策として使用するこれらの例は、実際には JSON API レベルで XSLTForms によって完全にサポートされていません。

これを XSLTForms で実行するには、以下を置き換える必要があります。

instanceElement.parentNode.rebuild();
instanceElement.parentNode.recalculate();
instanceElement.parentNode.revalidate();
instanceElement.parentNode.refresh();

に:

XsltForms_globals.addChange(instanceElement.parentNode.id);
XsltForms_xmlevents.dispatch(instanceElement.parentNode, "xforms-rebuild");
XsltForms_globals.refresh();

于 2016-07-23T13:17:32.667 に答える