рдкреНрд░реИрдХреНрдЯрд┐рдХрд▓ рдПрдХреНрд╕рдПрд╕рдПрд▓рдЯреАред рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рднрд╛рдЧ реи

рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ XSLT рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдореБрдЦреНрдп рдкрд╣рд▓реБрдУрдВ рдХреЛ рджреЗрдЦрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдкреВрд░реНрдг рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рди рдХреЗрд╡рд▓ рд╕рд╛рдЗрдЯ рдореЗрдиреВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рдкрд╛рда рд╕рд╛рдордЧреНрд░реА рднреАред



XML рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ HTML рдХрдВрдЯреЗрдВрдЯ



рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдерд╛ рдХрд┐ рдПрдХ XML рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреА рд╕рдВрдкреВрд░реНрдг рд╕рд╛рдордЧреНрд░реА рдПрдХ рдмреНрд▓реЙрдХ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ . , .



: , .. , item html , ( container ).



xsl/template.xsl :



<xsl:template match="item" mode="html">

<xsl:value-of select="@title"/>

<xsl:value-of select="." disable-output-escaping="yes" />

</xsl:template>





item . ( title ) . <xsl:value-of select="." disable-output-escaping="yes" />



, ( . ) - disable-output-escaping "" , .. " ". .



, , , XHTML . XSLT ( <br>



) . (- ) , , : CDATA .

CDATA , , . CDATA ' <![CDATA[' ']]>



'. ' ]]>



'.

, CDATA XSL- " ".



, . , xsl/my_template/layout.xsl .



, XHTML- :













- . ( ) xsl/template.xsl :



<xsl:template match="content">







</xsl:template>









content . , xsl/my_template/layout.xsl , . :



<xsl:apply-templates select="content"/>









xsl/template.xsl :



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









, XML- .



-

.



XML- - . , ( ) section . , .



xsl/navigation.xsl <xsl:template match="sections" mode="global_menu">




:



<xsl:template match="sections" mode="global_menu">





</xsl:template>









, , section=1 .



, <xsl:when test="descendant-or-self::*/@id = /node()/@id">



( ). , ( - ): id .



, XML- CMS : <sections hit_id="2">



. , sections item - . . item :

<xsl:apply-templates select="item[@section=1]" mode="global_menu">

<xsl:with-param name="cur"><xsl:value-of select="@hit_id"/></xsl:with-param>

</xsl:apply-templates>








<xsl:apply-templates/>



( ) <xsl:with-param name="cur">



, - cur .



, <xsl:template match="item" mode="global_menu">



:



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:value-of select="title"/>

</xsl:when>








$cur . , : descendant-or-self::*/@id , @id , .. ? , , - . descendant-or-self::*/@id id .



, :

- ; - .

, , - :



<xsl:template match="item" mode="global_menu">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>



</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



</xsl:template>









: <xsl:if test="descendant::*/@id = $cur"></xsl:if>







xsl:if . xsl:choose , , . , descendant::*/@id - id $cur .



- ( ) .



, . xsl/template.xsl <xsl:template match="content">



:



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">

<xsl:apply-templates select="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]" mode="sub-menu">

<xsl:with-param name="cur"><xsl:value-of select="//navigation/sections/@hit_id"/></xsl:with-param>

</xsl:apply-templates>



</xsl:if>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









:

<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">







, .



, : <xsl:apply-templates select="item" mode="sub-menu">







, xsl/my_template/navigation.xsl :



<xsl:template match="item" mode="sub-menu">



</xsl:template>









, , . , .



CSS . , DIV- , .. , XSLT , . , navigation.xsl .



, - . , . , <xsl:apply-templates select="item" mode="sub-menu-items">




:



<xsl:template match="item" mode="sub-menu-items">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>

</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



<xsl:if test="item/@id">



</xsl:if>



</xsl:template>









- item item , <xsl:template match="item" mode="sub-menu-items">



.



тАж



PS . , XSL-.



UPD: .

, XSLT.
































. , .



: , .. , item html , ( container ).



xsl/template.xsl :



<xsl:template match="item" mode="html">

<xsl:value-of select="@title"/>

<xsl:value-of select="." disable-output-escaping="yes" />

</xsl:template>









item . ( title ) . <xsl:value-of select="." disable-output-escaping="yes" />



, ( . ) - disable-output-escaping "" , .. " ". .



, , , XHTML . XSLT ( <br>



) . (- ) , , : CDATA .

CDATA , , . CDATA ' <![CDATA[' ']]>



'. ' ]]>



'.

, CDATA XSL- " ".



, . , xsl/my_template/layout.xsl .



, XHTML- :













- . ( ) xsl/template.xsl :



<xsl:template match="content">







</xsl:template>









content . , xsl/my_template/layout.xsl , . :



<xsl:apply-templates select="content"/>









xsl/template.xsl :



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









, XML- .



-

.



XML- - . , ( ) section . , .



xsl/navigation.xsl <xsl:template match="sections" mode="global_menu">




:



<xsl:template match="sections" mode="global_menu">





</xsl:template>









, , section=1 .



, <xsl:when test="descendant-or-self::*/@id = /node()/@id">



( ). , ( - ): id .



, XML- CMS : <sections hit_id="2">



. , sections item - . . item :

<xsl:apply-templates select="item[@section=1]" mode="global_menu">

<xsl:with-param name="cur"><xsl:value-of select="@hit_id"/></xsl:with-param>

</xsl:apply-templates>








<xsl:apply-templates/>



( ) <xsl:with-param name="cur">



, - cur .



, <xsl:template match="item" mode="global_menu">



:



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:value-of select="title"/>

</xsl:when>








$cur . , : descendant-or-self::*/@id , @id , .. ? , , - . descendant-or-self::*/@id id .



, :

- ; - .

, , - :



<xsl:template match="item" mode="global_menu">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>



</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



</xsl:template>









: <xsl:if test="descendant::*/@id = $cur"></xsl:if>







xsl:if . xsl:choose , , . , descendant::*/@id - id $cur .



- ( ) .



, . xsl/template.xsl <xsl:template match="content">



:



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">

<xsl:apply-templates select="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]" mode="sub-menu">

<xsl:with-param name="cur"><xsl:value-of select="//navigation/sections/@hit_id"/></xsl:with-param>

</xsl:apply-templates>



</xsl:if>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









:

<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">







, .



, : <xsl:apply-templates select="item" mode="sub-menu">







, xsl/my_template/navigation.xsl :



<xsl:template match="item" mode="sub-menu">



</xsl:template>









, , . , .



CSS . , DIV- , .. , XSLT , . , navigation.xsl .



, - . , . , <xsl:apply-templates select="item" mode="sub-menu-items">




:



<xsl:template match="item" mode="sub-menu-items">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>

</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



<xsl:if test="item/@id">



</xsl:if>



</xsl:template>









- item item , <xsl:template match="item" mode="sub-menu-items">



.



тАж



PS . , XSL-.



UPD: .

, XSLT.




























. , .



: , .. , item html , ( container ).



xsl/template.xsl :



<xsl:template match="item" mode="html">

<xsl:value-of select="@title"/>

<xsl:value-of select="." disable-output-escaping="yes" />

</xsl:template>





item . ( title ) . <xsl:value-of select="." disable-output-escaping="yes" />



, ( . ) - disable-output-escaping "" , .. " ". .



, , , XHTML . XSLT ( <br>



) . (- ) , , : CDATA .

CDATA , , . CDATA ' <![CDATA[' ']]>



'. ' ]]>



'.

, CDATA XSL- " ".



, . , xsl/my_template/layout.xsl .



, XHTML- :













- . ( ) xsl/template.xsl :



<xsl:template match="content">







</xsl:template>









content . , xsl/my_template/layout.xsl , . :



<xsl:apply-templates select="content"/>









xsl/template.xsl :



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









, XML- .



-

.



XML- - . , ( ) section . , .



xsl/navigation.xsl <xsl:template match="sections" mode="global_menu">




:



<xsl:template match="sections" mode="global_menu">





</xsl:template>









, , section=1 .



, <xsl:when test="descendant-or-self::*/@id = /node()/@id">



( ). , ( - ): id .



, XML- CMS : <sections hit_id="2">



. , sections item - . . item :

<xsl:apply-templates select="item[@section=1]" mode="global_menu">

<xsl:with-param name="cur"><xsl:value-of select="@hit_id"/></xsl:with-param>

</xsl:apply-templates>








<xsl:apply-templates/>



( ) <xsl:with-param name="cur">



, - cur .



, <xsl:template match="item" mode="global_menu">



:



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:value-of select="title"/>

</xsl:when>








$cur . , : descendant-or-self::*/@id , @id , .. ? , , - . descendant-or-self::*/@id id .



, :

- ; - .

, , - :



<xsl:template match="item" mode="global_menu">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>



</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



</xsl:template>









: <xsl:if test="descendant::*/@id = $cur"></xsl:if>







xsl:if . xsl:choose , , . , descendant::*/@id - id $cur .



- ( ) .



, . xsl/template.xsl <xsl:template match="content">



:



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">

<xsl:apply-templates select="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]" mode="sub-menu">

<xsl:with-param name="cur"><xsl:value-of select="//navigation/sections/@hit_id"/></xsl:with-param>

</xsl:apply-templates>



</xsl:if>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









:

<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">







, .



, : <xsl:apply-templates select="item" mode="sub-menu">







, xsl/my_template/navigation.xsl :



<xsl:template match="item" mode="sub-menu">



</xsl:template>









, , . , .



CSS . , DIV- , .. , XSLT , . , navigation.xsl .



, - . , . , <xsl:apply-templates select="item" mode="sub-menu-items">




:



<xsl:template match="item" mode="sub-menu-items">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>

</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



<xsl:if test="item/@id">



</xsl:if>



</xsl:template>









- item item , <xsl:template match="item" mode="sub-menu-items">



.



тАж



PS . , XSL-.



UPD: .

, XSLT.
































. , .



: , .. , item html , ( container ).



xsl/template.xsl :



<xsl:template match="item" mode="html">

<xsl:value-of select="@title"/>

<xsl:value-of select="." disable-output-escaping="yes" />

</xsl:template>









item . ( title ) . <xsl:value-of select="." disable-output-escaping="yes" />



, ( . ) - disable-output-escaping "" , .. " ". .



, , , XHTML . XSLT ( <br>



) . (- ) , , : CDATA .

CDATA , , . CDATA ' <![CDATA[' ']]>



'. ' ]]>



'.

, CDATA XSL- " ".



, . , xsl/my_template/layout.xsl .



, XHTML- :













- . ( ) xsl/template.xsl :



<xsl:template match="content">







</xsl:template>









content . , xsl/my_template/layout.xsl , . :



<xsl:apply-templates select="content"/>









xsl/template.xsl :



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









, XML- .



-

.



XML- - . , ( ) section . , .



xsl/navigation.xsl <xsl:template match="sections" mode="global_menu">




:



<xsl:template match="sections" mode="global_menu">





</xsl:template>









, , section=1 .



, <xsl:when test="descendant-or-self::*/@id = /node()/@id">



( ). , ( - ): id .



, XML- CMS : <sections hit_id="2">



. , sections item - . . item :

<xsl:apply-templates select="item[@section=1]" mode="global_menu">

<xsl:with-param name="cur"><xsl:value-of select="@hit_id"/></xsl:with-param>

</xsl:apply-templates>








<xsl:apply-templates/>



( ) <xsl:with-param name="cur">



, - cur .



, <xsl:template match="item" mode="global_menu">



:



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:value-of select="title"/>

</xsl:when>








$cur . , : descendant-or-self::*/@id , @id , .. ? , , - . descendant-or-self::*/@id id .



, :

- ; - .

, , - :



<xsl:template match="item" mode="global_menu">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>



</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



</xsl:template>









: <xsl:if test="descendant::*/@id = $cur"></xsl:if>







xsl:if . xsl:choose , , . , descendant::*/@id - id $cur .



- ( ) .



, . xsl/template.xsl <xsl:template match="content">



:



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">

<xsl:apply-templates select="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]" mode="sub-menu">

<xsl:with-param name="cur"><xsl:value-of select="//navigation/sections/@hit_id"/></xsl:with-param>

</xsl:apply-templates>



</xsl:if>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









:

<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">







, .



, : <xsl:apply-templates select="item" mode="sub-menu">







, xsl/my_template/navigation.xsl :



<xsl:template match="item" mode="sub-menu">



</xsl:template>









, , . , .



CSS . , DIV- , .. , XSLT , . , navigation.xsl .



, - . , . , <xsl:apply-templates select="item" mode="sub-menu-items">




:



<xsl:template match="item" mode="sub-menu-items">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>

</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



<xsl:if test="item/@id">



</xsl:if>



</xsl:template>









- item item , <xsl:template match="item" mode="sub-menu-items">



.



тАж



PS . , XSL-.



UPD: .

, XSLT.




























. , .



: , .. , item html , ( container ).



xsl/template.xsl :



<xsl:template match="item" mode="html">

<xsl:value-of select="@title"/>

<xsl:value-of select="." disable-output-escaping="yes" />

</xsl:template>









item . ( title ) . <xsl:value-of select="." disable-output-escaping="yes" />



, ( . ) - disable-output-escaping "" , .. " ". .



, , , XHTML . XSLT ( <br>



) . (- ) , , : CDATA .

CDATA , , . CDATA ' <![CDATA[' ']]>



'. ' ]]>



'.

, CDATA XSL- " ".



, . , xsl/my_template/layout.xsl .



, XHTML- :













- . ( ) xsl/template.xsl :



<xsl:template match="content">







</xsl:template>









content . , xsl/my_template/layout.xsl , . :



<xsl:apply-templates select="content"/>









xsl/template.xsl :



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









, XML- .



-

.



XML- - . , ( ) section . , .



xsl/navigation.xsl <xsl:template match="sections" mode="global_menu">




:



<xsl:template match="sections" mode="global_menu">





</xsl:template>









, , section=1 .



, <xsl:when test="descendant-or-self::*/@id = /node()/@id">



( ). , ( - ): id .



, XML- CMS : <sections hit_id="2">



. , sections item - . . item :

<xsl:apply-templates select="item[@section=1]" mode="global_menu">

<xsl:with-param name="cur"><xsl:value-of select="@hit_id"/></xsl:with-param>

</xsl:apply-templates>








<xsl:apply-templates/>



( ) <xsl:with-param name="cur">



, - cur .



, <xsl:template match="item" mode="global_menu">



:



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:value-of select="title"/>

</xsl:when>








$cur . , : descendant-or-self::*/@id , @id , .. ? , , - . descendant-or-self::*/@id id .



, :

- ; - .

, , - :



<xsl:template match="item" mode="global_menu">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>



</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



</xsl:template>









: <xsl:if test="descendant::*/@id = $cur"></xsl:if>







xsl:if . xsl:choose , , . , descendant::*/@id - id $cur .



- ( ) .



, . xsl/template.xsl <xsl:template match="content">



:



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">

<xsl:apply-templates select="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]" mode="sub-menu">

<xsl:with-param name="cur"><xsl:value-of select="//navigation/sections/@hit_id"/></xsl:with-param>

</xsl:apply-templates>



</xsl:if>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









:

<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">







, .



, : <xsl:apply-templates select="item" mode="sub-menu">







, xsl/my_template/navigation.xsl :



<xsl:template match="item" mode="sub-menu">



</xsl:template>









, , . , .



CSS . , DIV- , .. , XSLT , . , navigation.xsl .



, - . , . , <xsl:apply-templates select="item" mode="sub-menu-items">




:



<xsl:template match="item" mode="sub-menu-items">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>

</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



<xsl:if test="item/@id">



</xsl:if>



</xsl:template>









- item item , <xsl:template match="item" mode="sub-menu-items">



.



тАж



PS . , XSL-.



UPD: .

, XSLT.




























. , .



: , .. , item html , ( container ).



xsl/template.xsl :



<xsl:template match="item" mode="html">

<xsl:value-of select="@title"/>

<xsl:value-of select="." disable-output-escaping="yes" />

</xsl:template>









item . ( title ) . <xsl:value-of select="." disable-output-escaping="yes" />



, ( . ) - disable-output-escaping "" , .. " ". .



, , , XHTML . XSLT ( <br>



) . (- ) , , : CDATA .

CDATA , , . CDATA ' <![CDATA[' ']]>



'. ' ]]>



'.

, CDATA XSL- " ".



, . , xsl/my_template/layout.xsl .



, XHTML- :













- . ( ) xsl/template.xsl :



<xsl:template match="content">







</xsl:template>









content . , xsl/my_template/layout.xsl , . :



<xsl:apply-templates select="content"/>









xsl/template.xsl :



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









, XML- .



-

.



XML- - . , ( ) section . , .



xsl/navigation.xsl <xsl:template match="sections" mode="global_menu">




:



<xsl:template match="sections" mode="global_menu">





</xsl:template>









, , section=1 .



, <xsl:when test="descendant-or-self::*/@id = /node()/@id">



( ). , ( - ): id .



, XML- CMS : <sections hit_id="2">



. , sections item - . . item :

<xsl:apply-templates select="item[@section=1]" mode="global_menu">

<xsl:with-param name="cur"><xsl:value-of select="@hit_id"/></xsl:with-param>

</xsl:apply-templates>








<xsl:apply-templates/>



( ) <xsl:with-param name="cur">



, - cur .



, <xsl:template match="item" mode="global_menu">



:



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:value-of select="title"/>

</xsl:when>








$cur . , : descendant-or-self::*/@id , @id , .. ? , , - . descendant-or-self::*/@id id .



, :

- ; - .

, , - :



<xsl:template match="item" mode="global_menu">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>



</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



</xsl:template>









: <xsl:if test="descendant::*/@id = $cur"></xsl:if>







xsl:if . xsl:choose , , . , descendant::*/@id - id $cur .



- ( ) .



, . xsl/template.xsl <xsl:template match="content">



:



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">

<xsl:apply-templates select="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]" mode="sub-menu">

<xsl:with-param name="cur"><xsl:value-of select="//navigation/sections/@hit_id"/></xsl:with-param>

</xsl:apply-templates>



</xsl:if>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









:

<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">







, .



, : <xsl:apply-templates select="item" mode="sub-menu">







, xsl/my_template/navigation.xsl :



<xsl:template match="item" mode="sub-menu">



</xsl:template>









, , . , .



CSS . , DIV- , .. , XSLT , . , navigation.xsl .



, - . , . , <xsl:apply-templates select="item" mode="sub-menu-items">




:



<xsl:template match="item" mode="sub-menu-items">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>

</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



<xsl:if test="item/@id">



</xsl:if>



</xsl:template>









- item item , <xsl:template match="item" mode="sub-menu-items">



.



тАж



PS . , XSL-.



UPD: .

, XSLT.




























. , .



: , .. , item html , ( container ).



xsl/template.xsl :



<xsl:template match="item" mode="html">

<xsl:value-of select="@title"/>

<xsl:value-of select="." disable-output-escaping="yes" />

</xsl:template>









item . ( title ) . <xsl:value-of select="." disable-output-escaping="yes" />



, ( . ) - disable-output-escaping "" , .. " ". .



, , , XHTML . XSLT ( <br>



) . (- ) , , : CDATA .

CDATA , , . CDATA ' <![CDATA[' ']]>



'. ' ]]>



'.

, CDATA XSL- " ".



, . , xsl/my_template/layout.xsl .



, XHTML- :









- . ( ) xsl/template.xsl :



<xsl:template match="content">







</xsl:template>









content . , xsl/my_template/layout.xsl , . :



<xsl:apply-templates select="content"/>









xsl/template.xsl :



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









, XML- .



-

.



XML- - . , ( ) section . , .



xsl/navigation.xsl <xsl:template match="sections" mode="global_menu">




:



<xsl:template match="sections" mode="global_menu">





</xsl:template>









, , section=1 .



, <xsl:when test="descendant-or-self::*/@id = /node()/@id">



( ). , ( - ): id .



, XML- CMS : <sections hit_id="2">



. , sections item - . . item :

<xsl:apply-templates select="item[@section=1]" mode="global_menu">

<xsl:with-param name="cur"><xsl:value-of select="@hit_id"/></xsl:with-param>

</xsl:apply-templates>








<xsl:apply-templates/>



( ) <xsl:with-param name="cur">



, - cur .



, <xsl:template match="item" mode="global_menu">



:



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:value-of select="title"/>

</xsl:when>








$cur . , : descendant-or-self::*/@id , @id , .. ? , , - . descendant-or-self::*/@id id .



, :

- ; - .

, , - :



<xsl:template match="item" mode="global_menu">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>



</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



</xsl:template>









: <xsl:if test="descendant::*/@id = $cur"></xsl:if>







xsl:if . xsl:choose , , . , descendant::*/@id - id $cur .



- ( ) .



, . xsl/template.xsl <xsl:template match="content">



:



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">

<xsl:apply-templates select="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]" mode="sub-menu">

<xsl:with-param name="cur"><xsl:value-of select="//navigation/sections/@hit_id"/></xsl:with-param>

</xsl:apply-templates>



</xsl:if>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









:

<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">







, .



, : <xsl:apply-templates select="item" mode="sub-menu">







, xsl/my_template/navigation.xsl :



<xsl:template match="item" mode="sub-menu">



</xsl:template>









, , . , .



CSS . , DIV- , .. , XSLT , . , navigation.xsl .



, - . , . , <xsl:apply-templates select="item" mode="sub-menu-items">




:



<xsl:template match="item" mode="sub-menu-items">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>

</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



<xsl:if test="item/@id">



</xsl:if>



</xsl:template>









- item item , <xsl:template match="item" mode="sub-menu-items">



.



тАж



PS . , XSL-.



UPD: .

, XSLT.
































. , .



: , .. , item html , ( container ).



xsl/template.xsl :



<xsl:template match="item" mode="html">

<xsl:value-of select="@title"/>

<xsl:value-of select="." disable-output-escaping="yes" />

</xsl:template>









item . ( title ) . <xsl:value-of select="." disable-output-escaping="yes" />



, ( . ) - disable-output-escaping "" , .. " ". .



, , , XHTML . XSLT ( <br>



) . (- ) , , : CDATA .

CDATA , , . CDATA ' <![CDATA[' ']]>



'. ' ]]>



'.

, CDATA XSL- " ".



, . , xsl/my_template/layout.xsl .



, XHTML- :









- . ( ) xsl/template.xsl :



<xsl:template match="content">







</xsl:template>









content . , xsl/my_template/layout.xsl , . :



<xsl:apply-templates select="content"/>









xsl/template.xsl :



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









, XML- .



-

.



XML- - . , ( ) section . , .



xsl/navigation.xsl <xsl:template match="sections" mode="global_menu">




:



<xsl:template match="sections" mode="global_menu">





</xsl:template>









, , section=1 .



, <xsl:when test="descendant-or-self::*/@id = /node()/@id">



( ). , ( - ): id .



, XML- CMS : <sections hit_id="2">



. , sections item - . . item :

<xsl:apply-templates select="item[@section=1]" mode="global_menu">

<xsl:with-param name="cur"><xsl:value-of select="@hit_id"/></xsl:with-param>

</xsl:apply-templates>








<xsl:apply-templates/>



( ) <xsl:with-param name="cur">



, - cur .



, <xsl:template match="item" mode="global_menu">



:



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:value-of select="title"/>

</xsl:when>








$cur . , : descendant-or-self::*/@id , @id , .. ? , , - . descendant-or-self::*/@id id .



, :

- ; - .

, , - :



<xsl:template match="item" mode="global_menu">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>



</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



</xsl:template>









: <xsl:if test="descendant::*/@id = $cur"></xsl:if>







xsl:if . xsl:choose , , . , descendant::*/@id - id $cur .



- ( ) .



, . xsl/template.xsl <xsl:template match="content">



:



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">

<xsl:apply-templates select="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]" mode="sub-menu">

<xsl:with-param name="cur"><xsl:value-of select="//navigation/sections/@hit_id"/></xsl:with-param>

</xsl:apply-templates>



</xsl:if>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









:

<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">







, .



, : <xsl:apply-templates select="item" mode="sub-menu">







, xsl/my_template/navigation.xsl :



<xsl:template match="item" mode="sub-menu">



</xsl:template>









, , . , .



CSS . , DIV- , .. , XSLT , . , navigation.xsl .



, - . , . , <xsl:apply-templates select="item" mode="sub-menu-items">




:



<xsl:template match="item" mode="sub-menu-items">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>

</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



<xsl:if test="item/@id">



</xsl:if>



</xsl:template>









- item item , <xsl:template match="item" mode="sub-menu-items">



.



тАж



PS . , XSL-.



UPD: .

, XSLT.
































. , .



: , .. , item html , ( container ).



xsl/template.xsl :



<xsl:template match="item" mode="html">

<xsl:value-of select="@title"/>

<xsl:value-of select="." disable-output-escaping="yes" />

</xsl:template>









item . ( title ) . <xsl:value-of select="." disable-output-escaping="yes" />



, ( . ) - disable-output-escaping "" , .. " ". .



, , , XHTML . XSLT ( <br>



) . (- ) , , : CDATA .

CDATA , , . CDATA ' <![CDATA[' ']]>



'. ' ]]>



'.

, CDATA XSL- " ".



, . , xsl/my_template/layout.xsl .



, XHTML- :













- . ( ) xsl/template.xsl :



<xsl:template match="content">







</xsl:template>









content . , xsl/my_template/layout.xsl , . :



<xsl:apply-templates select="content"/>









xsl/template.xsl :



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









, XML- .



-

.



XML- - . , ( ) section . , .



xsl/navigation.xsl <xsl:template match="sections" mode="global_menu">




:



<xsl:template match="sections" mode="global_menu">





</xsl:template>









, , section=1 .



, <xsl:when test="descendant-or-self::*/@id = /node()/@id">



( ). , ( - ): id .



, XML- CMS : <sections hit_id="2">



. , sections item - . . item :

<xsl:apply-templates select="item[@section=1]" mode="global_menu">

<xsl:with-param name="cur"><xsl:value-of select="@hit_id"/></xsl:with-param>

</xsl:apply-templates>








<xsl:apply-templates/>



( ) <xsl:with-param name="cur">



, - cur .



, <xsl:template match="item" mode="global_menu">



:



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:value-of select="title"/>

</xsl:when>








$cur . , : descendant-or-self::*/@id , @id , .. ? , , - . descendant-or-self::*/@id id .



, :

- ; - .

, , - :



<xsl:template match="item" mode="global_menu">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>



</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



</xsl:template>









: <xsl:if test="descendant::*/@id = $cur"></xsl:if>







xsl:if . xsl:choose , , . , descendant::*/@id - id $cur .



- ( ) .



, . xsl/template.xsl <xsl:template match="content">



:



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">

<xsl:apply-templates select="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]" mode="sub-menu">

<xsl:with-param name="cur"><xsl:value-of select="//navigation/sections/@hit_id"/></xsl:with-param>

</xsl:apply-templates>



</xsl:if>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









:

<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">







, .



, : <xsl:apply-templates select="item" mode="sub-menu">







, xsl/my_template/navigation.xsl :



<xsl:template match="item" mode="sub-menu">



</xsl:template>









, , . , .



CSS . , DIV- , .. , XSLT , . , navigation.xsl .



, - . , . , <xsl:apply-templates select="item" mode="sub-menu-items">




:



<xsl:template match="item" mode="sub-menu-items">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>

</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



<xsl:if test="item/@id">



</xsl:if>



</xsl:template>









- item item , <xsl:template match="item" mode="sub-menu-items">



.



тАж



PS . , XSL-.



UPD: .

, XSLT.




























. , .



: , .. , item html , ( container ).



xsl/template.xsl :



<xsl:template match="item" mode="html">

<xsl:value-of select="@title"/>

<xsl:value-of select="." disable-output-escaping="yes" />

</xsl:template>









item . ( title ) . <xsl:value-of select="." disable-output-escaping="yes" />



, ( . ) - disable-output-escaping "" , .. " ". .



, , , XHTML . XSLT ( <br>



) . (- ) , , : CDATA .

CDATA , , . CDATA ' <![CDATA[' ']]>



'. ' ]]>



'.

, CDATA XSL- " ".



, . , xsl/my_template/layout.xsl .



, XHTML- :













- . ( ) xsl/template.xsl :



<xsl:template match="content">







</xsl:template>





content . , xsl/my_template/layout.xsl , . :



<xsl:apply-templates select="content"/>









xsl/template.xsl :



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









, XML- .



-

.



XML- - . , ( ) section . , .



xsl/navigation.xsl <xsl:template match="sections" mode="global_menu">




:



<xsl:template match="sections" mode="global_menu">





</xsl:template>









, , section=1 .



, <xsl:when test="descendant-or-self::*/@id = /node()/@id">



( ). , ( - ): id .



, XML- CMS : <sections hit_id="2">



. , sections item - . . item :

<xsl:apply-templates select="item[@section=1]" mode="global_menu">

<xsl:with-param name="cur"><xsl:value-of select="@hit_id"/></xsl:with-param>

</xsl:apply-templates>








<xsl:apply-templates/>



( ) <xsl:with-param name="cur">



, - cur .



, <xsl:template match="item" mode="global_menu">



:



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:value-of select="title"/>

</xsl:when>








$cur . , : descendant-or-self::*/@id , @id , .. ? , , - . descendant-or-self::*/@id id .



, :

- ; - .

, , - :



<xsl:template match="item" mode="global_menu">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>



</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



</xsl:template>









: <xsl:if test="descendant::*/@id = $cur"></xsl:if>







xsl:if . xsl:choose , , . , descendant::*/@id - id $cur .



- ( ) .



, . xsl/template.xsl <xsl:template match="content">



:



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">

<xsl:apply-templates select="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]" mode="sub-menu">

<xsl:with-param name="cur"><xsl:value-of select="//navigation/sections/@hit_id"/></xsl:with-param>

</xsl:apply-templates>



</xsl:if>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









:

<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">







, .



, : <xsl:apply-templates select="item" mode="sub-menu">







, xsl/my_template/navigation.xsl :



<xsl:template match="item" mode="sub-menu">



</xsl:template>









, , . , .



CSS . , DIV- , .. , XSLT , . , navigation.xsl .



, - . , . , <xsl:apply-templates select="item" mode="sub-menu-items">




:



<xsl:template match="item" mode="sub-menu-items">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>

</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



<xsl:if test="item/@id">



</xsl:if>



</xsl:template>









- item item , <xsl:template match="item" mode="sub-menu-items">



.



тАж



PS . , XSL-.



UPD: .

, XSLT.
































. , .



: , .. , item html , ( container ).



xsl/template.xsl :



<xsl:template match="item" mode="html">

<xsl:value-of select="@title"/>

<xsl:value-of select="." disable-output-escaping="yes" />

</xsl:template>









item . ( title ) . <xsl:value-of select="." disable-output-escaping="yes" />



, ( . ) - disable-output-escaping "" , .. " ". .



, , , XHTML . XSLT ( <br>



) . (- ) , , : CDATA .

CDATA , , . CDATA ' <![CDATA[' ']]>



'. ' ]]>



'.

, CDATA XSL- " ".



, . , xsl/my_template/layout.xsl .



, XHTML- :













- . ( ) xsl/template.xsl :



<xsl:template match="content">







</xsl:template>





content . , xsl/my_template/layout.xsl , . :



<xsl:apply-templates select="content"/>









xsl/template.xsl :



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









, XML- .



-

.



XML- - . , ( ) section . , .



xsl/navigation.xsl <xsl:template match="sections" mode="global_menu">




:



<xsl:template match="sections" mode="global_menu">





</xsl:template>









, , section=1 .



, <xsl:when test="descendant-or-self::*/@id = /node()/@id">



( ). , ( - ): id .



, XML- CMS : <sections hit_id="2">



. , sections item - . . item :

<xsl:apply-templates select="item[@section=1]" mode="global_menu">

<xsl:with-param name="cur"><xsl:value-of select="@hit_id"/></xsl:with-param>

</xsl:apply-templates>








<xsl:apply-templates/>



( ) <xsl:with-param name="cur">



, - cur .



, <xsl:template match="item" mode="global_menu">



:



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:value-of select="title"/>

</xsl:when>








$cur . , : descendant-or-self::*/@id , @id , .. ? , , - . descendant-or-self::*/@id id .



, :

- ; - .

, , - :



<xsl:template match="item" mode="global_menu">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>



</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



</xsl:template>









: <xsl:if test="descendant::*/@id = $cur"></xsl:if>







xsl:if . xsl:choose , , . , descendant::*/@id - id $cur .



- ( ) .



, . xsl/template.xsl <xsl:template match="content">



:



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">

<xsl:apply-templates select="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]" mode="sub-menu">

<xsl:with-param name="cur"><xsl:value-of select="//navigation/sections/@hit_id"/></xsl:with-param>

</xsl:apply-templates>



</xsl:if>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









:

<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">







, .



, : <xsl:apply-templates select="item" mode="sub-menu">







, xsl/my_template/navigation.xsl :



<xsl:template match="item" mode="sub-menu">



</xsl:template>









, , . , .



CSS . , DIV- , .. , XSLT , . , navigation.xsl .



, - . , . , <xsl:apply-templates select="item" mode="sub-menu-items">




:



<xsl:template match="item" mode="sub-menu-items">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>

</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



<xsl:if test="item/@id">



</xsl:if>



</xsl:template>









- item item , <xsl:template match="item" mode="sub-menu-items">



.



тАж



PS . , XSL-.



UPD: .

, XSLT.
































. , .



: , .. , item html , ( container ).



xsl/template.xsl :



<xsl:template match="item" mode="html">

<xsl:value-of select="@title"/>

<xsl:value-of select="." disable-output-escaping="yes" />

</xsl:template>









item . ( title ) . <xsl:value-of select="." disable-output-escaping="yes" />



, ( . ) - disable-output-escaping "" , .. " ". .



, , , XHTML . XSLT ( <br>



) . (- ) , , : CDATA .

CDATA , , . CDATA ' <![CDATA[' ']]>



'. ' ]]>



'.

, CDATA XSL- " ".



, . , xsl/my_template/layout.xsl .



, XHTML- :













- . ( ) xsl/template.xsl :



<xsl:template match="content">







</xsl:template>









content . , xsl/my_template/layout.xsl , . :



<xsl:apply-templates select="content"/>









xsl/template.xsl :



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









, XML- .



-

.



XML- - . , ( ) section . , .



xsl/navigation.xsl <xsl:template match="sections" mode="global_menu">




:



<xsl:template match="sections" mode="global_menu">





</xsl:template>









, , section=1 .



, <xsl:when test="descendant-or-self::*/@id = /node()/@id">



( ). , ( - ): id .



, XML- CMS : <sections hit_id="2">



. , sections item - . . item :

<xsl:apply-templates select="item[@section=1]" mode="global_menu">

<xsl:with-param name="cur"><xsl:value-of select="@hit_id"/></xsl:with-param>

</xsl:apply-templates>








<xsl:apply-templates/>



( ) <xsl:with-param name="cur">



, - cur .



, <xsl:template match="item" mode="global_menu">



:



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:value-of select="title"/>

</xsl:when>








$cur . , : descendant-or-self::*/@id , @id , .. ? , , - . descendant-or-self::*/@id id .



, :

- ; - .

, , - :



<xsl:template match="item" mode="global_menu">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>



</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



</xsl:template>









: <xsl:if test="descendant::*/@id = $cur"></xsl:if>







xsl:if . xsl:choose , , . , descendant::*/@id - id $cur .



- ( ) .



, . xsl/template.xsl <xsl:template match="content">



:



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">

<xsl:apply-templates select="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]" mode="sub-menu">

<xsl:with-param name="cur"><xsl:value-of select="//navigation/sections/@hit_id"/></xsl:with-param>

</xsl:apply-templates>



</xsl:if>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









:

<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">







, .



, : <xsl:apply-templates select="item" mode="sub-menu">







, xsl/my_template/navigation.xsl :



<xsl:template match="item" mode="sub-menu">



</xsl:template>









, , . , .



CSS . , DIV- , .. , XSLT , . , navigation.xsl .



, - . , . , <xsl:apply-templates select="item" mode="sub-menu-items">




:



<xsl:template match="item" mode="sub-menu-items">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>

</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



<xsl:if test="item/@id">



</xsl:if>



</xsl:template>









- item item , <xsl:template match="item" mode="sub-menu-items">



.



тАж



PS . , XSL-.



UPD: .

, XSLT.




























. , .



: , .. , item html , ( container ).



xsl/template.xsl :



<xsl:template match="item" mode="html">

<xsl:value-of select="@title"/>

<xsl:value-of select="." disable-output-escaping="yes" />

</xsl:template>









item . ( title ) . <xsl:value-of select="." disable-output-escaping="yes" />



, ( . ) - disable-output-escaping "" , .. " ". .



, , , XHTML . XSLT ( <br>



) . (- ) , , : CDATA .

CDATA , , . CDATA ' <![CDATA[' ']]>



'. ' ]]>



'.

, CDATA XSL- " ".



, . , xsl/my_template/layout.xsl .



, XHTML- :













- . ( ) xsl/template.xsl :



<xsl:template match="content">







</xsl:template>









content . , xsl/my_template/layout.xsl , . :



<xsl:apply-templates select="content"/>









xsl/template.xsl :



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>





, XML- .



-

.



XML- - . , ( ) section . , .



xsl/navigation.xsl <xsl:template match="sections" mode="global_menu">




:



<xsl:template match="sections" mode="global_menu">





</xsl:template>









, , section=1 .



, <xsl:when test="descendant-or-self::*/@id = /node()/@id">



( ). , ( - ): id .



, XML- CMS : <sections hit_id="2">



. , sections item - . . item :

<xsl:apply-templates select="item[@section=1]" mode="global_menu">

<xsl:with-param name="cur"><xsl:value-of select="@hit_id"/></xsl:with-param>

</xsl:apply-templates>








<xsl:apply-templates/>



( ) <xsl:with-param name="cur">



, - cur .



, <xsl:template match="item" mode="global_menu">



:



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:value-of select="title"/>

</xsl:when>








$cur . , : descendant-or-self::*/@id , @id , .. ? , , - . descendant-or-self::*/@id id .



, :

- ; - .

, , - :



<xsl:template match="item" mode="global_menu">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>



</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



</xsl:template>









: <xsl:if test="descendant::*/@id = $cur"></xsl:if>







xsl:if . xsl:choose , , . , descendant::*/@id - id $cur .



- ( ) .



, . xsl/template.xsl <xsl:template match="content">



:



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">

<xsl:apply-templates select="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]" mode="sub-menu">

<xsl:with-param name="cur"><xsl:value-of select="//navigation/sections/@hit_id"/></xsl:with-param>

</xsl:apply-templates>



</xsl:if>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









:

<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">







, .



, : <xsl:apply-templates select="item" mode="sub-menu">







, xsl/my_template/navigation.xsl :



<xsl:template match="item" mode="sub-menu">



</xsl:template>









, , . , .



CSS . , DIV- , .. , XSLT , . , navigation.xsl .



, - . , . , <xsl:apply-templates select="item" mode="sub-menu-items">




:



<xsl:template match="item" mode="sub-menu-items">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>

</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



<xsl:if test="item/@id">



</xsl:if>



</xsl:template>









- item item , <xsl:template match="item" mode="sub-menu-items">



.



тАж



PS . , XSL-.



UPD: .

, XSLT.
































. , .



: , .. , item html , ( container ).



xsl/template.xsl :



<xsl:template match="item" mode="html">

<xsl:value-of select="@title"/>

<xsl:value-of select="." disable-output-escaping="yes" />

</xsl:template>









item . ( title ) . <xsl:value-of select="." disable-output-escaping="yes" />



, ( . ) - disable-output-escaping "" , .. " ". .



, , , XHTML . XSLT ( <br>



) . (- ) , , : CDATA .

CDATA , , . CDATA ' <![CDATA[' ']]>



'. ' ]]>



'.

, CDATA XSL- " ".



, . , xsl/my_template/layout.xsl .



, XHTML- :













- . ( ) xsl/template.xsl :



<xsl:template match="content">







</xsl:template>









content . , xsl/my_template/layout.xsl , . :



<xsl:apply-templates select="content"/>









xsl/template.xsl :



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>





, XML- .



-

.



XML- - . , ( ) section . , .



xsl/navigation.xsl <xsl:template match="sections" mode="global_menu">




:



<xsl:template match="sections" mode="global_menu">





</xsl:template>









, , section=1 .



, <xsl:when test="descendant-or-self::*/@id = /node()/@id">



( ). , ( - ): id .



, XML- CMS : <sections hit_id="2">



. , sections item - . . item :

<xsl:apply-templates select="item[@section=1]" mode="global_menu">

<xsl:with-param name="cur"><xsl:value-of select="@hit_id"/></xsl:with-param>

</xsl:apply-templates>








<xsl:apply-templates/>



( ) <xsl:with-param name="cur">



, - cur .



, <xsl:template match="item" mode="global_menu">



:



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:value-of select="title"/>

</xsl:when>








$cur . , : descendant-or-self::*/@id , @id , .. ? , , - . descendant-or-self::*/@id id .



, :

- ; - .

, , - :



<xsl:template match="item" mode="global_menu">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>



</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



</xsl:template>









: <xsl:if test="descendant::*/@id = $cur"></xsl:if>







xsl:if . xsl:choose , , . , descendant::*/@id - id $cur .



- ( ) .



, . xsl/template.xsl <xsl:template match="content">



:



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">

<xsl:apply-templates select="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]" mode="sub-menu">

<xsl:with-param name="cur"><xsl:value-of select="//navigation/sections/@hit_id"/></xsl:with-param>

</xsl:apply-templates>



</xsl:if>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









:

<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">







, .



, : <xsl:apply-templates select="item" mode="sub-menu">







, xsl/my_template/navigation.xsl :



<xsl:template match="item" mode="sub-menu">



</xsl:template>









, , . , .



CSS . , DIV- , .. , XSLT , . , navigation.xsl .



, - . , . , <xsl:apply-templates select="item" mode="sub-menu-items">




:



<xsl:template match="item" mode="sub-menu-items">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>

</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



<xsl:if test="item/@id">



</xsl:if>



</xsl:template>









- item item , <xsl:template match="item" mode="sub-menu-items">



.



тАж



PS . , XSL-.



UPD: .

, XSLT.
































. , .



: , .. , item html , ( container ).



xsl/template.xsl :



<xsl:template match="item" mode="html">

<xsl:value-of select="@title"/>

<xsl:value-of select="." disable-output-escaping="yes" />

</xsl:template>









item . ( title ) . <xsl:value-of select="." disable-output-escaping="yes" />



, ( . ) - disable-output-escaping "" , .. " ". .



, , , XHTML . XSLT ( <br>



) . (- ) , , : CDATA .

CDATA , , . CDATA ' <![CDATA[' ']]>



'. ' ]]>



'.

, CDATA XSL- " ".



, . , xsl/my_template/layout.xsl .



, XHTML- :













- . ( ) xsl/template.xsl :



<xsl:template match="content">







</xsl:template>









content . , xsl/my_template/layout.xsl , . :



<xsl:apply-templates select="content"/>









xsl/template.xsl :



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









, XML- .



-

.



XML- - . , ( ) section . , .



xsl/navigation.xsl <xsl:template match="sections" mode="global_menu">




:



<xsl:template match="sections" mode="global_menu">





</xsl:template>









, , section=1 .



, <xsl:when test="descendant-or-self::*/@id = /node()/@id">



( ). , ( - ): id .



, XML- CMS : <sections hit_id="2">



. , sections item - . . item :

<xsl:apply-templates select="item[@section=1]" mode="global_menu">

<xsl:with-param name="cur"><xsl:value-of select="@hit_id"/></xsl:with-param>

</xsl:apply-templates>








<xsl:apply-templates/>



( ) <xsl:with-param name="cur">



, - cur .



, <xsl:template match="item" mode="global_menu">



:



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:value-of select="title"/>

</xsl:when>








$cur . , : descendant-or-self::*/@id , @id , .. ? , , - . descendant-or-self::*/@id id .



, :

- ; - .

, , - :



<xsl:template match="item" mode="global_menu">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>



</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



</xsl:template>









: <xsl:if test="descendant::*/@id = $cur"></xsl:if>







xsl:if . xsl:choose , , . , descendant::*/@id - id $cur .



- ( ) .



, . xsl/template.xsl <xsl:template match="content">



:



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">

<xsl:apply-templates select="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]" mode="sub-menu">

<xsl:with-param name="cur"><xsl:value-of select="//navigation/sections/@hit_id"/></xsl:with-param>

</xsl:apply-templates>



</xsl:if>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









:

<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">







, .



, : <xsl:apply-templates select="item" mode="sub-menu">







, xsl/my_template/navigation.xsl :



<xsl:template match="item" mode="sub-menu">



</xsl:template>









, , . , .



CSS . , DIV- , .. , XSLT , . , navigation.xsl .



, - . , . , <xsl:apply-templates select="item" mode="sub-menu-items">




:



<xsl:template match="item" mode="sub-menu-items">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>

</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



<xsl:if test="item/@id">



</xsl:if>



</xsl:template>









- item item , <xsl:template match="item" mode="sub-menu-items">



.



тАж



PS . , XSL-.



UPD: .

, XSLT.




























. , .



: , .. , item html , ( container ).



xsl/template.xsl :



<xsl:template match="item" mode="html">

<xsl:value-of select="@title"/>

<xsl:value-of select="." disable-output-escaping="yes" />

</xsl:template>









item . ( title ) . <xsl:value-of select="." disable-output-escaping="yes" />



, ( . ) - disable-output-escaping "" , .. " ". .



, , , XHTML . XSLT ( <br>



) . (- ) , , : CDATA .

CDATA , , . CDATA ' <![CDATA[' ']]>



'. ' ]]>



'.

, CDATA XSL- " ".



, . , xsl/my_template/layout.xsl .



, XHTML- :













- . ( ) xsl/template.xsl :



<xsl:template match="content">







</xsl:template>









content . , xsl/my_template/layout.xsl , . :



<xsl:apply-templates select="content"/>









xsl/template.xsl :



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









, XML- .



-

.



XML- - . , ( ) section . , .



xsl/navigation.xsl <xsl:template match="sections" mode="global_menu">




:



<xsl:template match="sections" mode="global_menu">





</xsl:template>









, , section=1 .



, <xsl:when test="descendant-or-self::*/@id = /node()/@id">



( ). , ( - ): id .



, XML- CMS : <sections hit_id="2">



. , sections item - . . item :

<xsl:apply-templates select="item[@section=1]" mode="global_menu">

<xsl:with-param name="cur"><xsl:value-of select="@hit_id"/></xsl:with-param>

</xsl:apply-templates>








<xsl:apply-templates/>



( ) <xsl:with-param name="cur">



, - cur .



, <xsl:template match="item" mode="global_menu">



:



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:value-of select="title"/>

</xsl:when>








$cur . , : descendant-or-self::*/@id , @id , .. ? , , - . descendant-or-self::*/@id id .



, :

- ; - .

, , - :



<xsl:template match="item" mode="global_menu">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>



</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



</xsl:template>









: <xsl:if test="descendant::*/@id = $cur"></xsl:if>







xsl:if . xsl:choose , , . , descendant::*/@id - id $cur .



- ( ) .



, . xsl/template.xsl <xsl:template match="content">



:



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">

<xsl:apply-templates select="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]" mode="sub-menu">

<xsl:with-param name="cur"><xsl:value-of select="//navigation/sections/@hit_id"/></xsl:with-param>

</xsl:apply-templates>



</xsl:if>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









:

<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">







, .



, : <xsl:apply-templates select="item" mode="sub-menu">







, xsl/my_template/navigation.xsl :



<xsl:template match="item" mode="sub-menu">



</xsl:template>









, , . , .



CSS . , DIV- , .. , XSLT , . , navigation.xsl .



, - . , . , <xsl:apply-templates select="item" mode="sub-menu-items">




:



<xsl:template match="item" mode="sub-menu-items">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>

</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



<xsl:if test="item/@id">



</xsl:if>



</xsl:template>









- item item , <xsl:template match="item" mode="sub-menu-items">



.



тАж



PS . , XSL-.



UPD: .

, XSLT.




























. , .



: , .. , item html , ( container ).



xsl/template.xsl :



<xsl:template match="item" mode="html">

<xsl:value-of select="@title"/>

<xsl:value-of select="." disable-output-escaping="yes" />

</xsl:template>









item . ( title ) . <xsl:value-of select="." disable-output-escaping="yes" />



, ( . ) - disable-output-escaping "" , .. " ". .



, , , XHTML . XSLT ( <br>



) . (- ) , , : CDATA .

CDATA , , . CDATA ' <![CDATA[' ']]>



'. ' ]]>



'.

, CDATA XSL- " ".



, . , xsl/my_template/layout.xsl .



, XHTML- :













- . ( ) xsl/template.xsl :



<xsl:template match="content">







</xsl:template>









content . , xsl/my_template/layout.xsl , . :



<xsl:apply-templates select="content"/>









xsl/template.xsl :



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









, XML- .



-

.



XML- - . , ( ) section . , .



xsl/navigation.xsl <xsl:template match="sections" mode="global_menu">




:



<xsl:template match="sections" mode="global_menu">





</xsl:template>









, , section=1 .



, <xsl:when test="descendant-or-self::*/@id = /node()/@id">



( ). , ( - ): id .



, XML- CMS : <sections hit_id="2">



. , sections item - . . item :

<xsl:apply-templates select="item[@section=1]" mode="global_menu">

<xsl:with-param name="cur"><xsl:value-of select="@hit_id"/></xsl:with-param>

</xsl:apply-templates>








<xsl:apply-templates/>



( ) <xsl:with-param name="cur">



, - cur .



, <xsl:template match="item" mode="global_menu">



:



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:value-of select="title"/>

</xsl:when>








$cur . , : descendant-or-self::*/@id , @id , .. ? , , - . descendant-or-self::*/@id id .



, :

- ; - .

, , - :



<xsl:template match="item" mode="global_menu">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>



</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



</xsl:template>









: <xsl:if test="descendant::*/@id = $cur"></xsl:if>







xsl:if . xsl:choose , , . , descendant::*/@id - id $cur .



- ( ) .



, . xsl/template.xsl <xsl:template match="content">



:



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">

<xsl:apply-templates select="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]" mode="sub-menu">

<xsl:with-param name="cur"><xsl:value-of select="//navigation/sections/@hit_id"/></xsl:with-param>

</xsl:apply-templates>



</xsl:if>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









:

<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">







, .



, : <xsl:apply-templates select="item" mode="sub-menu">







, xsl/my_template/navigation.xsl :



<xsl:template match="item" mode="sub-menu">



</xsl:template>









, , . , .



CSS . , DIV- , .. , XSLT , . , navigation.xsl .



, - . , . , <xsl:apply-templates select="item" mode="sub-menu-items">




:



<xsl:template match="item" mode="sub-menu-items">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>

</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



<xsl:if test="item/@id">



</xsl:if>



</xsl:template>









- item item , <xsl:template match="item" mode="sub-menu-items">



.



тАж



PS . , XSL-.



UPD: .

, XSLT.




























. , .



: , .. , item html , ( container ).



xsl/template.xsl :



<xsl:template match="item" mode="html">

<xsl:value-of select="@title"/>

<xsl:value-of select="." disable-output-escaping="yes" />

</xsl:template>









item . ( title ) . <xsl:value-of select="." disable-output-escaping="yes" />



, ( . ) - disable-output-escaping "" , .. " ". .



, , , XHTML . XSLT ( <br>



) . (- ) , , : CDATA .

CDATA , , . CDATA ' <![CDATA[' ']]>



'. ' ]]>



'.

, CDATA XSL- " ".



, . , xsl/my_template/layout.xsl .



, XHTML- :













- . ( ) xsl/template.xsl :



<xsl:template match="content">







</xsl:template>









content . , xsl/my_template/layout.xsl , . :



<xsl:apply-templates select="content"/>









xsl/template.xsl :



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









, XML- .



-

.



XML- - . , ( ) section . , .



xsl/navigation.xsl <xsl:template match="sections" mode="global_menu">




:



<xsl:template match="sections" mode="global_menu">





</xsl:template>









, , section=1 .



, <xsl:when test="descendant-or-self::*/@id = /node()/@id">



( ). , ( - ): id .



, XML- CMS : <sections hit_id="2">



. , sections item - . . item :

<xsl:apply-templates select="item[@section=1]" mode="global_menu">

<xsl:with-param name="cur"><xsl:value-of select="@hit_id"/></xsl:with-param>

</xsl:apply-templates>








<xsl:apply-templates/>



( ) <xsl:with-param name="cur">



, - cur .



, <xsl:template match="item" mode="global_menu">



:



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:value-of select="title"/>

</xsl:when>








$cur . , : descendant-or-self::*/@id , @id , .. ? , , - . descendant-or-self::*/@id id .



, :

- ; - .

, , - :



<xsl:template match="item" mode="global_menu">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>



</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



</xsl:template>









: <xsl:if test="descendant::*/@id = $cur"></xsl:if>







xsl:if . xsl:choose , , . , descendant::*/@id - id $cur .



- ( ) .



, . xsl/template.xsl <xsl:template match="content">



:



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">

<xsl:apply-templates select="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]" mode="sub-menu">

<xsl:with-param name="cur"><xsl:value-of select="//navigation/sections/@hit_id"/></xsl:with-param>

</xsl:apply-templates>



</xsl:if>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









:

<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">







, .



, : <xsl:apply-templates select="item" mode="sub-menu">







, xsl/my_template/navigation.xsl :



<xsl:template match="item" mode="sub-menu">



</xsl:template>









, , . , .



CSS . , DIV- , .. , XSLT , . , navigation.xsl .



, - . , . , <xsl:apply-templates select="item" mode="sub-menu-items">




:



<xsl:template match="item" mode="sub-menu-items">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>

</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



<xsl:if test="item/@id">



</xsl:if>



</xsl:template>









- item item , <xsl:template match="item" mode="sub-menu-items">



.



тАж



PS . , XSL-.



UPD: .

, XSLT.




























. , .



: , .. , item html , ( container ).



xsl/template.xsl :



<xsl:template match="item" mode="html">

<xsl:value-of select="@title"/>

<xsl:value-of select="." disable-output-escaping="yes" />

</xsl:template>









item . ( title ) . <xsl:value-of select="." disable-output-escaping="yes" />



, ( . ) - disable-output-escaping "" , .. " ". .



, , , XHTML . XSLT ( <br>



) . (- ) , , : CDATA .

CDATA , , . CDATA ' <![CDATA[' ']]>



'. ' ]]>



'.

, CDATA XSL- " ".



, . , xsl/my_template/layout.xsl .



, XHTML- :













- . ( ) xsl/template.xsl :



<xsl:template match="content">







</xsl:template>









content . , xsl/my_template/layout.xsl , . :



<xsl:apply-templates select="content"/>









xsl/template.xsl :



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









, XML- .



-

.



XML- - . , ( ) section . , .



xsl/navigation.xsl <xsl:template match="sections" mode="global_menu">




:



<xsl:template match="sections" mode="global_menu">





</xsl:template>









, , section=1 .



, <xsl:when test="descendant-or-self::*/@id = /node()/@id">



( ). , ( - ): id .



, XML- CMS : <sections hit_id="2">



. , sections item - . . item :

<xsl:apply-templates select="item[@section=1]" mode="global_menu">

<xsl:with-param name="cur"><xsl:value-of select="@hit_id"/></xsl:with-param>

</xsl:apply-templates>








<xsl:apply-templates/>



( ) <xsl:with-param name="cur">



, - cur .



, <xsl:template match="item" mode="global_menu">



:



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:value-of select="title"/>

</xsl:when>








$cur . , : descendant-or-self::*/@id , @id , .. ? , , - . descendant-or-self::*/@id id .



, :

- ; - .

, , - :



<xsl:template match="item" mode="global_menu">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>



</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



</xsl:template>









: <xsl:if test="descendant::*/@id = $cur"></xsl:if>







xsl:if . xsl:choose , , . , descendant::*/@id - id $cur .



- ( ) .



, . xsl/template.xsl <xsl:template match="content">



:



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">

<xsl:apply-templates select="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]" mode="sub-menu">

<xsl:with-param name="cur"><xsl:value-of select="//navigation/sections/@hit_id"/></xsl:with-param>

</xsl:apply-templates>



</xsl:if>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>





:

<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">







, .



, : <xsl:apply-templates select="item" mode="sub-menu">







, xsl/my_template/navigation.xsl :



<xsl:template match="item" mode="sub-menu">



</xsl:template>









, , . , .



CSS . , DIV- , .. , XSLT , . , navigation.xsl .



, - . , . , <xsl:apply-templates select="item" mode="sub-menu-items">




:



<xsl:template match="item" mode="sub-menu-items">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>

</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



<xsl:if test="item/@id">



</xsl:if>



</xsl:template>









- item item , <xsl:template match="item" mode="sub-menu-items">



.



тАж



PS . , XSL-.



UPD: .

, XSLT.
































. , .



: , .. , item html , ( container ).



xsl/template.xsl :



<xsl:template match="item" mode="html">

<xsl:value-of select="@title"/>

<xsl:value-of select="." disable-output-escaping="yes" />

</xsl:template>









item . ( title ) . <xsl:value-of select="." disable-output-escaping="yes" />



, ( . ) - disable-output-escaping "" , .. " ". .



, , , XHTML . XSLT ( <br>



) . (- ) , , : CDATA .

CDATA , , . CDATA ' <![CDATA[' ']]>



'. ' ]]>



'.

, CDATA XSL- " ".



, . , xsl/my_template/layout.xsl .



, XHTML- :













- . ( ) xsl/template.xsl :



<xsl:template match="content">







</xsl:template>









content . , xsl/my_template/layout.xsl , . :



<xsl:apply-templates select="content"/>









xsl/template.xsl :



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









, XML- .



-

.



XML- - . , ( ) section . , .



xsl/navigation.xsl <xsl:template match="sections" mode="global_menu">




:



<xsl:template match="sections" mode="global_menu">





</xsl:template>









, , section=1 .



, <xsl:when test="descendant-or-self::*/@id = /node()/@id">



( ). , ( - ): id .



, XML- CMS : <sections hit_id="2">



. , sections item - . . item :

<xsl:apply-templates select="item[@section=1]" mode="global_menu">

<xsl:with-param name="cur"><xsl:value-of select="@hit_id"/></xsl:with-param>

</xsl:apply-templates>








<xsl:apply-templates/>



( ) <xsl:with-param name="cur">



, - cur .



, <xsl:template match="item" mode="global_menu">



:



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:value-of select="title"/>

</xsl:when>








$cur . , : descendant-or-self::*/@id , @id , .. ? , , - . descendant-or-self::*/@id id .



, :

- ; - .

, , - :



<xsl:template match="item" mode="global_menu">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>



</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



</xsl:template>









: <xsl:if test="descendant::*/@id = $cur"></xsl:if>







xsl:if . xsl:choose , , . , descendant::*/@id - id $cur .



- ( ) .



, . xsl/template.xsl <xsl:template match="content">



:



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">

<xsl:apply-templates select="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]" mode="sub-menu">

<xsl:with-param name="cur"><xsl:value-of select="//navigation/sections/@hit_id"/></xsl:with-param>

</xsl:apply-templates>



</xsl:if>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>





:

<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">







, .



, : <xsl:apply-templates select="item" mode="sub-menu">







, xsl/my_template/navigation.xsl :



<xsl:template match="item" mode="sub-menu">



</xsl:template>









, , . , .



CSS . , DIV- , .. , XSLT , . , navigation.xsl .



, - . , . , <xsl:apply-templates select="item" mode="sub-menu-items">




:



<xsl:template match="item" mode="sub-menu-items">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>

</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



<xsl:if test="item/@id">



</xsl:if>



</xsl:template>









- item item , <xsl:template match="item" mode="sub-menu-items">



.



тАж



PS . , XSL-.



UPD: .

, XSLT.
































. , .



: , .. , item html , ( container ).



xsl/template.xsl :



<xsl:template match="item" mode="html">

<xsl:value-of select="@title"/>

<xsl:value-of select="." disable-output-escaping="yes" />

</xsl:template>









item . ( title ) . <xsl:value-of select="." disable-output-escaping="yes" />



, ( . ) - disable-output-escaping "" , .. " ". .



, , , XHTML . XSLT ( <br>



) . (- ) , , : CDATA .

CDATA , , . CDATA ' <![CDATA[' ']]>



'. ' ]]>



'.

, CDATA XSL- " ".



, . , xsl/my_template/layout.xsl .



, XHTML- :













- . ( ) xsl/template.xsl :



<xsl:template match="content">







</xsl:template>









content . , xsl/my_template/layout.xsl , . :



<xsl:apply-templates select="content"/>









xsl/template.xsl :



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









, XML- .



-

.



XML- - . , ( ) section . , .



xsl/navigation.xsl <xsl:template match="sections" mode="global_menu">




:



<xsl:template match="sections" mode="global_menu">





</xsl:template>









, , section=1 .



, <xsl:when test="descendant-or-self::*/@id = /node()/@id">



( ). , ( - ): id .



, XML- CMS : <sections hit_id="2">



. , sections item - . . item :

<xsl:apply-templates select="item[@section=1]" mode="global_menu">

<xsl:with-param name="cur"><xsl:value-of select="@hit_id"/></xsl:with-param>

</xsl:apply-templates>








<xsl:apply-templates/>



( ) <xsl:with-param name="cur">



, - cur .



, <xsl:template match="item" mode="global_menu">



:



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:value-of select="title"/>

</xsl:when>








$cur . , : descendant-or-self::*/@id , @id , .. ? , , - . descendant-or-self::*/@id id .



, :

- ; - .

, , - :



<xsl:template match="item" mode="global_menu">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>



</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



</xsl:template>









: <xsl:if test="descendant::*/@id = $cur"></xsl:if>







xsl:if . xsl:choose , , . , descendant::*/@id - id $cur .



- ( ) .



, . xsl/template.xsl <xsl:template match="content">



:



<xsl:template match="content">



<xsl:apply-templates select="item[@container = 1]" mode="html"/>



<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">

<xsl:apply-templates select="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]" mode="sub-menu">

<xsl:with-param name="cur"><xsl:value-of select="//navigation/sections/@hit_id"/></xsl:with-param>

</xsl:apply-templates>



</xsl:if>



<xsl:apply-templates select="item[@container = 2]" mode="html"/>



</xsl:template>









:

<xsl:if test="//navigation/sections/item[descendant-or-self::*/@id = //navigation/sections/@hit_id]/item/@id">







, .



, : <xsl:apply-templates select="item" mode="sub-menu">







, xsl/my_template/navigation.xsl :



<xsl:template match="item" mode="sub-menu">



</xsl:template>









, , . , .



CSS . , DIV- , .. , XSLT , . , navigation.xsl .



, - . , . , <xsl:apply-templates select="item" mode="sub-menu-items">




:



<xsl:template match="item" mode="sub-menu-items">

<xsl:choose>



<xsl:when test="descendant-or-self::*/@id = $cur">

<xsl:attribute name="id"><xsl:text>cur</xsl:text></xsl:attribute>



<xsl:if test="descendant::*/@id = $cur">

<xsl:call-template name="href_attribute"/>

</xsl:if>

<xsl:value-of select="title"/>

</xsl:when>



<xsl:otherwise>

<xsl:call-template name="href_attribute"/>

<xsl:value-of select="title"/>



</xsl:otherwise>

</xsl:choose>



<xsl:if test="item/@id">



</xsl:if>



</xsl:template>









- item item , <xsl:template match="item" mode="sub-menu-items">



.



тАж



PS . , XSL-.



UPD: .

, XSLT.































All Articles