將XML轉換爲HTML時,我試圖將xref元素作爲鏈接輸出,並且自動生成的章節編號從xref引用的章節元素中提取。xsl:number count中的XSL id()函數
例如,使用XML源文件是這樣的:
<chapter id="a_chapter">
<title>Title</title>
<para>...as seen in <xref linkend="some_other_chapter">.</para>
</chapter>
<chapter id="some_other_chapter">
<title>Title</title>
<para>Some text here.</para>
</chapter>
存在兩個章節和外部參照是指第二章,在生成的HTML外部參照應該輸出是這樣的:
<section id="a_chapter">
<h1>Title</h1>
<p>...as seen in <a href="#some_other_chapter">Chapter 2</a>.</p>
</section>
但我不確定如何計算xref @linkend引用的章節元素。我嘗試使用XSL:數字,但我無法用數內的ID()函數:
<xsl:template match="xref">
<xsl:variable name="label">
<xsl:when test="id(@linkend)[self::chapter]"><xsl:text>Chapter </xsl:text></xsl:when>
</xsl:variable
<xsl:variable name="count">
<xsl:if test="id(@linkend)[self::chapter]"><xsl:number count="id(@linkend)/chapter" level="any" format="1"/></xsl:if>
</xsl:variable>
<a href="#{@linkend}">
<xsl:value-of select="$label"/><xsl:value-of select="$count"/>
</a>
</xsl:template>
我只使用「一章」作爲XSL的價值也嘗試:數數,但爲所有產出製作了「第0章」。
我在這裏,或只是做一個愚蠢的xpath錯誤?任何幫助將不勝感激。
我認爲你正在使用'count'錯誤。請使用合適的解決方案,例如http://stackoverflow.com/questions/5877193/xslnumber-count-not-working-as-expected-issue-with-my-xpath – kan