Tomas.Waller
2010-07-12 07:37:29 UTC
Dobrý den!
Chtěl bych zavést v <bridgehead> stejnou hierarchii, jako by to byly vnořené elementy, pomocí atributů renderas="sect1" atd.
Zatím mám veškeré číslování těchto <bridgehead> v obsahu, záložkách apod.
Ale číslují se mi průběžně přes všechny bridgehead.
Potřeboval bych to takto hierarchicky. Mám-li elementy:
<bridgehead renderas="sect1">nadpis</bridgehead>
...
<bridgehead renderas="sect2">nadpis</bridgehead>
...
<bridgehead renderas="sect2">nadpis</bridgehead>
...
<bridgehead renderas="sect1">nadpis</bridgehead>
...
<bridgehead renderas="sect2">nadpis</bridgehead>
...
<bridgehead renderas="sect2">nadpis</bridgehead>
...
chtěl bych strukturu číslování:
třeba
2.8.1 (pro první renderas="sect1")
2.8.1.1 (pro první renderas="sect2 po prvním renderas="sect1")
2.8.1.2 (pro druhé renderas="sect2 po prvním renderas="sect1")
2.8.2 (pro druhé renderas="sect1")
2.8.2.1 (pro první renderas="sect2 po druhém renderas="sect1")
2.8.2.2 (pro druhé renderas="sect2 po druhém renderas="sect1")
Zatím mám vše až po 2.8.1
detailnější strukturu mám tedy
2.8.1
2.8.1.x
2.8.1.x
2.8.2
2.8.2.x
2.8.2.x
ale tato "x" nedokážu nastavit, aby se počítala vždy od vyšší úrovně, tedy v tomto případě od renderas="sect1".
pro tyto renderas="sect2" získám label "vyššího elementu pomocí volání
<xsl:apply-templates select="preceding-sibling::bridgehead[@renderas = 'sect1'][1]" mode="label.markup"/>
, což je snad správně, jen tu nejnižší úroveň nedokážu dodělat.
potřeboval bych pro každý element s atributem renderas="sect2" zjistit pozici přecházejícího elementu
<bridgehead renderas="sect1">,
což ale neumím.
Pokud se nepletu, je to element preceding-sibling::bridgehead[@renderas = 'sect1'][1]
Jak to udělat? Jak spočítat jeho pozici uvnitř rodiče? (position.of.higher.within.parent)
<xsl:number format=... value="count(preceding-sibling::bridgehead) + 1 - $position.of.higher.within.parent"/>
Jak tedy zjistit tuto $position.of.higher.within.parent?
(Pro hlubší úrovně bych měl obdobně elementy s renderas="sect4" a před nimi nejbližší renderas="sect3" apod.)
Pro vzhled nadpisů bych raději vyčlenil atribut role.
Děkuji za radu.
Tomáš Waller
Chtěl bych zavést v <bridgehead> stejnou hierarchii, jako by to byly vnořené elementy, pomocí atributů renderas="sect1" atd.
Zatím mám veškeré číslování těchto <bridgehead> v obsahu, záložkách apod.
Ale číslují se mi průběžně přes všechny bridgehead.
Potřeboval bych to takto hierarchicky. Mám-li elementy:
<bridgehead renderas="sect1">nadpis</bridgehead>
...
<bridgehead renderas="sect2">nadpis</bridgehead>
...
<bridgehead renderas="sect2">nadpis</bridgehead>
...
<bridgehead renderas="sect1">nadpis</bridgehead>
...
<bridgehead renderas="sect2">nadpis</bridgehead>
...
<bridgehead renderas="sect2">nadpis</bridgehead>
...
chtěl bych strukturu číslování:
třeba
2.8.1 (pro první renderas="sect1")
2.8.1.1 (pro první renderas="sect2 po prvním renderas="sect1")
2.8.1.2 (pro druhé renderas="sect2 po prvním renderas="sect1")
2.8.2 (pro druhé renderas="sect1")
2.8.2.1 (pro první renderas="sect2 po druhém renderas="sect1")
2.8.2.2 (pro druhé renderas="sect2 po druhém renderas="sect1")
Zatím mám vše až po 2.8.1
detailnější strukturu mám tedy
2.8.1
2.8.1.x
2.8.1.x
2.8.2
2.8.2.x
2.8.2.x
ale tato "x" nedokážu nastavit, aby se počítala vždy od vyšší úrovně, tedy v tomto případě od renderas="sect1".
pro tyto renderas="sect2" získám label "vyššího elementu pomocí volání
<xsl:apply-templates select="preceding-sibling::bridgehead[@renderas = 'sect1'][1]" mode="label.markup"/>
, což je snad správně, jen tu nejnižší úroveň nedokážu dodělat.
potřeboval bych pro každý element s atributem renderas="sect2" zjistit pozici přecházejícího elementu
<bridgehead renderas="sect1">,
což ale neumím.
Pokud se nepletu, je to element preceding-sibling::bridgehead[@renderas = 'sect1'][1]
Jak to udělat? Jak spočítat jeho pozici uvnitř rodiče? (position.of.higher.within.parent)
<xsl:number format=... value="count(preceding-sibling::bridgehead) + 1 - $position.of.higher.within.parent"/>
Jak tedy zjistit tuto $position.of.higher.within.parent?
(Pro hlubší úrovně bych měl obdobně elementy s renderas="sect4" a před nimi nejbližší renderas="sect3" apod.)
Pro vzhled nadpisů bych raději vyčlenil atribut role.
Děkuji za radu.
Tomáš Waller