1

generate-idxslt スタイルシートで使用したいと思います。ただし、この関数は 8 文字の長さの ID を生成します。

IDを2文字だけにする方法はありますか? もちろん、これにより可能な ID の数は制限されます (1296 の可能性) が、その制限を超える必要はありません。

ありがとう

4

2 に答える 2

3

単一のドキュメント内のノードに対して ID を一意にするだけでよい場合は、次を使用できます。

<xsl:number count="*" level="any" from="/*" format="a"/>
于 2012-06-07T20:41:03.930 に答える
0

XML 名で許可されているすべての Unicode 文字を使用したい場合、2 文字で 1296 をはるかに超える可能性があります。

残念ながら、XSLT プロセッサは、関数の ID を作成する方法を自由に決定できgenerate-id()ます (つまり、使用しているプロセッサによっては、8 文字より多い場合も少ない場合もあります)。

generate-id()そうは言っても、それが本当に重要な場合は、先行する兄弟ノードと祖先ノード ノード ( ) の数に基づいて独自に記述できるはずcount(ancestor::node()|preceding::node())です...ルックアップ テーブルまたは任意の他のメカニズムであり、おそらくあまり効率的ではありませんが、うまくいくはずです...

于 2012-06-07T19:57:18.770 に答える