数字格式需要作为 dita ot epub 输出的 xhtml 文件的前缀



我已经使用Dita OT 1.8.5进行epub转换:但我需要epub输出中xhtml文件名的数字序列格式01,02,03..前缀。

我已经更改了html-generation-utils.xsl函数中的代码,如下所示,用于文件名的编号序列:

<xsl:function name="htmlutil:constructHtmlResultTopicFilename" as="xs:string">
<xsl:param name="topic" as="document-node()"/>
<xsl:variable name="topicFilename"
select="concat(htmlutil:getResultTopicBaseName($topic), $OUTEXT)"
as="xs:string"/>
<xsl:for-each select="$topic">
<xsl:variable name="number"><xsl:value-of select="format-number(position(),'00')"/></xsl:variable>
<xsl:sequence select="concat($number, $topicFilename)"/>
</xsl:for-each>
</xsl:function>

我仅将所有前缀的文件名输出为"01"。

但是我需要前缀为 01、02、03、...

请指教。

提前致谢

<xsl:template name="get-result-topic-base-name-single-dir">
<xsl:param name="topicUri" as="xs:string"/>
<xsl:variable name="topicID" select="/*[contains(@class, ' topic/topic ')]/@id" />     
<xsl:variable name="topic_count">
<xsl:for-each select="$collected-data-global">
<xsl:for-each select="mapdriven:collected-data/enum:enumerables/enum:topicref[@topicID=$topicID]">
<xsl:number count="enum:topicref" format="01" />
</xsl:for-each>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="maintitle"><xsl:apply-templates select="/*[contains(@class, ' topic/topic ')]/*[contains(@class, ' topic/title ')]" mode="text-only"/></xsl:variable>
<xsl:variable name="filename_characters_to_remove">~!@#$%^*()_+`-={}|[]:";'?,./&#160;&lt;&gt;&amp;&#x2018;&#x2019;&#x201C;&#x201D;&#x2013;&#x2014;</xsl:variable>
<xsl:variable name="puncremoved" select="translate($maintitle, $filename_characters_to_remove,'')"/>
<xsl:variable name="baseName" select="translate($puncremoved, ' ','_')" as="xs:string"/>
<xsl:sequence select="concat($topic_count, '_', $baseName)"/>
</xsl:template>

最新更新