3erg
Новичок
навигация по сайту
Заранее извиняюсь, если эта тема уже поднималась. Встала тут у меня проблема с генерацией навигации по сайту.
При попадании в основонй раздел должны "раскрываться" подразделы, пример привожу ниже:
// ------- document.xml ------- //
<document id="1">
...
</document>
// ------- document.xml ------- //
// ------- menu.xml------- //
<!-- глубина вложенности ограничена --!>
<menu>
<item id="1" value="item1">
<subitem id="2" pid="1" value="subitem1"/>
<subitem id="3" pid="1" value="subitem2"/>
</item>
<item id="5" value="item2">
<subitem id="7" pid="5" value="subitem1"/>
</item>
<item id="8" value="item3"/>
</menu>
// ------- menu.xml------- //
// ------- style.xsl ------- //
<xsl:variable name="menu" select="document('menu.xml')/menu"/>
<xsl:variable name="id" select="//document/@id"/>
..........
<xsl:if test="//item/@id=//subitem/@pid">
<xsl:apply-templates select="//item[@id=$id]/@value"/>
<xsl:apply-templates select="//item/subitem[@pid=$id]/@value"/>
</xsl:if>
<xsl:if test="//item/@id!=//subitem/@pid">
<xsl:apply-templates select="//item[@id!=$id]/@value"/>
</xsl:if>
......
<xsl:template match="item">
<a href="?id={@id}"><xsl:value-of select="{@value}"></a>
</template>
<xsl:template match="subitem">
#&160;#&160;<a href="?id={@id}"><xsl:value-of select="{@value}"></a>
</template>
// ------- style.xsl ------- //
Результат:
для id=1
// ------- result.html ------- //
item1
subitem1
subitem2
item2
item3
// ------- result.html ------- //
для id=5
// ------- result.html ------- //
item2
subitem1
item1
item3
// ------- result.html ------- //
Как сделать чтобы подразделы "раскрывались" без перемещения родительского раздела?
-~{}~ 07.04.05 20:47:
Осознаю, что проблемным местом в моем рещении является сие:
Заранее извиняюсь, если эта тема уже поднималась. Встала тут у меня проблема с генерацией навигации по сайту.
При попадании в основонй раздел должны "раскрываться" подразделы, пример привожу ниже:
// ------- document.xml ------- //
<document id="1">
...
</document>
// ------- document.xml ------- //
// ------- menu.xml------- //
<!-- глубина вложенности ограничена --!>
<menu>
<item id="1" value="item1">
<subitem id="2" pid="1" value="subitem1"/>
<subitem id="3" pid="1" value="subitem2"/>
</item>
<item id="5" value="item2">
<subitem id="7" pid="5" value="subitem1"/>
</item>
<item id="8" value="item3"/>
</menu>
// ------- menu.xml------- //
// ------- style.xsl ------- //
<xsl:variable name="menu" select="document('menu.xml')/menu"/>
<xsl:variable name="id" select="//document/@id"/>
..........
<xsl:if test="//item/@id=//subitem/@pid">
<xsl:apply-templates select="//item[@id=$id]/@value"/>
<xsl:apply-templates select="//item/subitem[@pid=$id]/@value"/>
</xsl:if>
<xsl:if test="//item/@id!=//subitem/@pid">
<xsl:apply-templates select="//item[@id!=$id]/@value"/>
</xsl:if>
......
<xsl:template match="item">
<a href="?id={@id}"><xsl:value-of select="{@value}"></a>
</template>
<xsl:template match="subitem">
#&160;#&160;<a href="?id={@id}"><xsl:value-of select="{@value}"></a>
</template>
// ------- style.xsl ------- //
Результат:
для id=1
// ------- result.html ------- //
item1
subitem1
subitem2
item2
item3
// ------- result.html ------- //
для id=5
// ------- result.html ------- //
item2
subitem1
item1
item3
// ------- result.html ------- //
Как сделать чтобы подразделы "раскрывались" без перемещения родительского раздела?
-~{}~ 07.04.05 20:47:
Осознаю, что проблемным местом в моем рещении является сие:
Надеюсь на вашу помощь наимудреший all<xsl:if test="//item/@id=//subitem/@pid">
<xsl:apply-templates select="//item[@id=$id]/@value"/>
<xsl:apply-templates select="//item/subitem[@pid=$id]/@value"/>
</xsl:if>
<xsl:if test="//item/@id!=//subitem/@pid">
<xsl:apply-templates select="//item[@id!=$id]/@value"/>
</xsl:if>