XML ドキュメントをオンライン表示用の HTML ファイルに変換しています (電子ブックとして)。
XML ファイルの各章は に含まれて<div>
おり、見出し ( <head>
) があります。各見出しを 2 回表示する必要があります。1 回目は最初の目次の一部として、2 回目は各章の冒頭に表示します。私はこれを行うためmode="toc"
に内で使用し<xsl:template>
ました。
私の問題は、いくつかの<head>
見出しに子要素<note>
があり、編集脚注が含まれていることです。見出しが章の上部に表示されるときにこれらの<note>
タグを処理する必要がありますが、目次には表示したくありません (つまり、mode="toc"
.
私の質問は<head>
、目次の要素を処理するようにスタイルシートに指示する方法ですが、子要素を無視する方法です (発生する必要があります)。
以下は、メモのない見出しの例で、目次モードで問題なく表示されます。
<div xml:id="d1.c1" type="chapter">
<head>Pursuit of pleasure. Limits set to it by Virtue—
Asceticism is Vice</head>
<p>Contents of chapter 1 go here</p>
</div>
そして、これはメモ付きのものです。これは、目次を生成するときに削除したいものです。
<div xml:id="d1.c6" type="chapter">
<head>Happiness and Virtue, how diminished by Asceticism in an indirect
way.—Useful and genuine obligations elbowed out by spurious ones<note
xml:id="d1.c6fn1" type="editor">In the text, the author has noted at this
point: 'These topics must have been handled elsewhere: perhaps gone through
with. Yet what follows may serve for an Introduction.'</note></head>
<p>Contents of chapter 6 go here</p>
</div>
現在、私の XSL は次のようになっています。
<xsl:template match="tei:head" mode="toc">
<xsl:if test="../@type = 'chapter'">
<h3><a href="#{../@xml:id}"><xsl:apply-templates/></a></h3>
</xsl:if>
</xsl:template>
toc
メモ用モードで新しい空白のテンプレート マッチを追加しようとしましたが、役に立ちませんでした。例えば:
<xsl:template match="tei:note" mode="toc"/>
私も試しtei:head/tei:note
てみました\\tei:head\tei:note
ドキュメント全体 ( /
) に一致する私のテンプレートでは、次を使用して目次を表示します。
<xsl:apply-templates select="//tei:head" mode="toc"/>
以下を追加しようとしましたが、役に立ちませんでした:
<xsl:apply-templates select="//tei:head/tei:note[@type = 'editorial']"
mode="toc"/>
どんな助けでも大歓迎です!
ps これは SE に関する初めての投稿です。重要な詳細を見逃していた場合はお知らせください。明確にします。ありがとう。