1

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

有没有办法让 id 只有两个字符?当然,这使得可能的 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 处理器可以自由决定如何为generate-id()函数创建 ID(这意味着根据您使用的处理器,您可以获得多于或少于 8 个字符)。

话虽这么说,如果这对您来说真的很重要,您应该能够generate-id()根据前面的兄弟节点和祖先节点节点count(ancestor::node()|preceding::node())(其他机制,这可能不是很有效,但应该工作......

于 2012-06-07T19:57:18.770 回答