我想generate-id
在我的 xslt 样式表中使用。但是,此函数会生成一个 8 字符长的 id。
有没有办法让 id 只有两个字符?当然,这使得可能的 id 数量有限(1296 种可能性),但我永远不需要超出这个限制。
谢谢
我想generate-id
在我的 xslt 样式表中使用。但是,此函数会生成一个 8 字符长的 id。
有没有办法让 id 只有两个字符?当然,这使得可能的 id 数量有限(1296 种可能性),但我永远不需要超出这个限制。
谢谢
如果您只需要 ID 对于单个文档中的节点是唯一的,则可以使用
<xsl:number count="*" level="any" from="/*" format="a"/>
如果您想使用 XML 名称中允许的所有 unicode 字符,那么 2 个字符就有超过 1296 种可能性!
不幸的是,XSLT 处理器可以自由决定如何为generate-id()
函数创建 ID(这意味着根据您使用的处理器,您可以获得多于或少于 8 个字符)。
话虽这么说,如果这对您来说真的很重要,您应该能够generate-id()
根据前面的兄弟节点和祖先节点节点count(ancestor::node()|preceding::node())
(其他机制,这可能不是很有效,但应该工作......