Hallo Forum,
weiß jemand, ob man mit XSL-Funktionen oder über ein workaround folgendes Problem in den Griff bekommt:
Es soll am Ende eines Dokuments ein Sachregister erstellt werden. Eigentlich soll es über FOP gemacht werden, aber dort ist es derzeit noch nicht möglich, doppelte Einträge und doppelte Seitennummern zu unterdrücken. Deshalb möchte ich diese doppelten Einträge mit XSL rausflitern:
(kw steht für keyword)
Ich habe keine Idee, wie man an soetwas rangeht. Ich habe nur mal gehört, daß man auch in XSLT Variablen mit Werten füllen kann. Vielleicht ist das ein Ansatz, daß man bei jedem Durchgang den aktuellen Elementinhalt mit dem vorhergehenden vergleicht. Sortiert sind die Inhalte ja schon.
Ein sich anschließendes Problem wäre dann, wie man noch die doppelten Seitenzahlen verhindert.
Vielen Dank!
weiß jemand, ob man mit XSL-Funktionen oder über ein workaround folgendes Problem in den Griff bekommt:
Es soll am Ende eines Dokuments ein Sachregister erstellt werden. Eigentlich soll es über FOP gemacht werden, aber dort ist es derzeit noch nicht möglich, doppelte Einträge und doppelte Seitennummern zu unterdrücken. Deshalb möchte ich diese doppelten Einträge mit XSL rausflitern:
(kw steht für keyword)
Code:
<DOC> text bla und blub text <kw>blau</kw> text weiterer Text <kw>rot</kw> Wiese Kuh und muh text <kw>blau></kw> schluss mit text </DOC> ... <xsl:for-each select="//DOC//kw"> <xsl:sort select="." /> <!-- hier sollte nun die doppelten Begriffe gefiltert werden --> <fo:block> <xsl:value-of select="." /> <fo:page-number-citation ref-id="{generate-id()}" /> <!-- <xsl:text>, </xsl:text> --> </fo:block> </xsl:for-each>
Ich habe keine Idee, wie man an soetwas rangeht. Ich habe nur mal gehört, daß man auch in XSLT Variablen mit Werten füllen kann. Vielleicht ist das ein Ansatz, daß man bei jedem Durchgang den aktuellen Elementinhalt mit dem vorhergehenden vergleicht. Sortiert sind die Inhalte ja schon.
Ein sich anschließendes Problem wäre dann, wie man noch die doppelten Seitenzahlen verhindert.
Vielen Dank!
Kommentar