XSLT 2字符只有generate-id

时间:2012-06-07 18:00:03

标签: xslt

我想在我的xslt样式表中使用generate-id。 但是,此函数会生成一个8个字符长的id。

有没有办法让id只有两个字符?当然这会产生有限数量的可能id(1296种可能性),但我永远不需要超出这个限制。

由于

2 个答案:

答案 0 :(得分:3)

如果您只需要ID对单个文档中的节点是唯一的,则可以使用

<xsl:number count="*" level="any" from="/*" format="a"/>

答案 1 :(得分:0)

如果您想使用XML名称中允许的所有unicode字符,那么您将拥有超过1296种可能性,包含2个字符!

不幸的是,XSLT处理器可以自由决定如何为generate-id()函数创建ID(这意味着根据您使用的处理器,您可以获得多于或少于8个字符)。

话虽如此,如果这对你真的很重要,你应该能够根据前面兄弟节点和祖先节点节点(generate-id())的数量编写自己的count(ancestor::node()|preceding::node()) ...你可以使用查找表或任何其他机制将此数字转换为两个字符的id,这可能效率不高但是应该有效......

相关问题