При преобразовании XML в HTML я пытаюсь вывести элемент xref как ссылку с автоматически сгенерированным номером главы, который извлекается из элемента главы, к которому относится ссылка xref.Функция XSL id() внутри xsl: число count
Например, с исходного 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: номер, но я не могу использовать функцию идентификатора() в графе:
<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