verschachtelte knoten/attribute unterschiedlich formatieren
cayron
- xsl
0 MudGuard0 cayron
0 cayron0 MudGuard
0 Thomas Meinike
hallo
ich suche nach einer anweisung die
verschachtelte elemente vom typ section (=kapitel/absatz)
mit dem attribut title (kapitelüberschrift)
je nach hierarchie-ebene unterschiedlich
formatiert, und der entsprechenden überschrift
h1-h6 zuweist. (section kann section beinhalten)
dazu habe ich zwar eine variable ($depth)
mit dem wert der hierarchie-tiefe,
kann dies aber nicht auf eine elementauswahl
(hier h1) beziehen.
ein element p mit xsl:attribut class="§depth" wäre nett,
aber es soll mit h1 bis h6 umgesetzt werden.
folgende lösung funktioniert leider auch nicht:
<xsl:variable name="tmp" select="concat('h',$depth)"/>
<xsl:element name="$tmp">
kann mir jemand weiterhelfen ?
noch fragen?
Hi,
ich suche nach einer anweisung die
verschachtelte elemente vom typ section (=kapitel/absatz)
mit dem attribut title (kapitelüberschrift)
je nach hierarchie-ebene unterschiedlich
formatiert, und der entsprechenden überschrift
h1-h6 zuweist. (section kann section beinhalten)
dazu habe ich zwar eine variable ($depth)
mit dem wert der hierarchie-tiefe,
kann dies aber nicht auf eine elementauswahl
(hier h1) beziehen.
ein element p mit xsl:attribut class="§depth" wäre nett,
aber es soll mit h1 bis h6 umgesetzt werden.
schon mal probiert, einfach unterschiedliche Templates zu benutzen?
Also so:
<xsl:template match="section/section/section/section/section/section">
<h6><xsl:value-of select="@title"/></h6>
</xsl:template>
<xsl:template match="section/section/section/section/section">
<h5><xsl:value-of select="@title"/></h5>
</xsl:template>
...
<xsl:template match="section">
<h1><xsl:value-of select="@title"/></h1>
</xsl:template>
(ist zwar der brute-force-Ansatz, aber bei nur 6 Ebenen...)
Andreas
das war die alte lösung, die ich erneuern wollte,
da man dann probleme mit "section/irgendeinanderertag/section" bekommt.
hab aber ne lösung gefunden ...
trotzdem danke
Hi,
ich suche nach einer anweisung die
verschachtelte elemente vom typ section (=kapitel/absatz)
mit dem attribut title (kapitelüberschrift)
je nach hierarchie-ebene unterschiedlich
formatiert, und der entsprechenden überschrift
h1-h6 zuweist. (section kann section beinhalten)
dazu habe ich zwar eine variable ($depth)
mit dem wert der hierarchie-tiefe,
kann dies aber nicht auf eine elementauswahl
(hier h1) beziehen.
ein element p mit xsl:attribut class="§depth" wäre nett,
aber es soll mit h1 bis h6 umgesetzt werden.
schon mal probiert, einfach unterschiedliche Templates zu benutzen?
Also so:
<xsl:template match="section/section/section/section/section/section">
<h6><xsl:value-of select="@title"/></h6>
</xsl:template>
<xsl:template match="section/section/section/section/section">
<h5><xsl:value-of select="@title"/></h5>
</xsl:template>
...
<xsl:template match="section">
<h1><xsl:value-of select="@title"/></h1>
</xsl:template>
(ist zwar der brute-force-Ansatz, aber bei nur 6 Ebenen...)
Andreas
<!-- die Überschrift -->
<!-- <H?> bereich fängt an -->
<xsl:variable name="topic" select="concat('h',$depth)"/>
<xsl:text disable-output-escaping="yes"><</xsl:text>
<xsl:value-of select="$topic"/>
<xsl:text disable-output-escaping="yes">></xsl:text>
[...]
<!-- <H?> bereich hört wieder auf an -->
<xsl:text disable-output-escaping="yes"></</xsl:text>
<xsl:value-of select="$topic"/>
<xsl:text disable-output-escaping="yes">></xsl:text>
*freu*
hallo
ich suche nach einer anweisung die
verschachtelte elemente vom typ section (=kapitel/absatz)
mit dem attribut title (kapitelüberschrift)
je nach hierarchie-ebene unterschiedlich
formatiert, und der entsprechenden überschrift
h1-h6 zuweist. (section kann section beinhalten)
dazu habe ich zwar eine variable ($depth)
mit dem wert der hierarchie-tiefe,
kann dies aber nicht auf eine elementauswahl
(hier h1) beziehen.
ein element p mit xsl:attribut class="§depth" wäre nett,
aber es soll mit h1 bis h6 umgesetzt werden.
folgende lösung funktioniert leider auch nicht:
<xsl:variable name="tmp" select="concat('h',$depth)"/>
<xsl:element name="$tmp">
kann mir jemand weiterhelfen ?
noch fragen?
<!-- die Überschrift -->
<!-- <H?> bereich fängt an -->
<xsl:variable name="topic" select="concat('h',$depth)"/>
<xsl:text disable-output-escaping="yes"><</xsl:text>
<xsl:value-of select="$topic"/>
<xsl:text disable-output-escaping="yes">></xsl:text>
[...]
<!-- <H?> bereich hört wieder auf an -->
<xsl:text disable-output-escaping="yes"></</xsl:text>
<xsl:value-of select="$topic"/>
<xsl:text disable-output-escaping="yes">></xsl:text>
Aua, das tut weh. So erzeugt man keine Elemente im Output.
Hier die richtige Lösung:
Annahme: in $depth steht eine ganze Zahl von 1 bis 6:
<xsl:element name="h{$depth}">
was auch immer in dem Element stehen soll
</xsl:element>
Andreas
Hallo,
folgende lösung funktioniert leider auch nicht:
<xsl:variable name="tmp" select="concat('h',$depth)"/>
<xsl:element name="$tmp">
kann mir jemand weiterhelfen ?
<xsl:element name="{$tmp}">
...
</xsl:element>
MfG, Thomas