如何在XSLT中轻松生成唯一字符串?

Sub*_* S. 2 xslt doxygen

我有个问题!

我有一个XML文档,其中包含部分和子部分.我正在使用它生成Doxygen页面XSLTProc,现在我遇到了问题.当我生成这样的部分名称时:

<xsl:template match="SECTION/SUBSECTION">
@subsection <xsl:value-of select="@title"/>
<xsl:apply-templates/>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

然后标题的第一个单词没有出现,因为Doxygen希望以这种方式声明:

@subsection <subsectionname> <subsectiontitle>
Run Code Online (Sandbox Code Playgroud)

因此,第一个单词将自动视为子节名称.将随机生成的字符串放在那里似乎不是一个非常简单的任务.我尝试使用唯一的数字,通过使用<xsl:value-of select="count(preceding-sibling::*[@col]) + 1",按预期工作,但事实证明,Doxygen不接受数字作为子部分名称.我还尝试剥离白色空格"@title"并将其用作小节名称,但XSLTProc抱怨它不是直接的孩子<xslt:stylesheet>.我怎样才能轻松地在那里放一些独特的弦?它不一定是有意义的文本.

提前致谢!

Dim*_*hev 5

使用该generate-id()功能.

<xsl:value-of select="generate-id(@title)"/> 
Run Code Online (Sandbox Code Playgroud)

如果您希望生成的字符串更"可读",可以使用以下方法:

<xsl:value-of select="concat(@title, generate-id(@title))"/> 
Run Code Online (Sandbox Code Playgroud)