xsl-list
[Top] [All Lists]

xsl-if: hide two navigation-levels

2005-09-09 01:04:19


Hi,

I am using a CMS & MS XML4 to generate a navigation
The XSLT loops through all existing directories and generates a nice navi, that 
works
Now I want to hide the first two levels.

I am showing you some snipplets of my xslt

..
  <xsl:key name="ParentURI" match="tcm:ListOrganizationalItems/tcm:Item" 
use="@ParentOrgItemID"/>
...

output of my xml:

<tcm:ListOrganizationalItems 
xmlns:tcm="http://www.tridion.com/ContentManager/5.0";><tcm:Item ID="tcm:9-3-4" 
ParentOrgItemID="tcm:0-9-1" Title="Root" Type="4" 
Modified="2005-08-04T16:24:55" FromPub="Empty Master" Icon="T4L0P0" 
PublishPath="/" Dir=""/><tcm:Item ID="tcm:9-5-4" ParentOrgItemID="tcm:9-10-4" 
Title="CNS" Type="4" Modified="2005-09-08T13:19:19" Icon="T4L0P0" 
PublishPath="/UCB/Therapy" Dir="CNS"/><tcm:Item ID="tcm:9-6-4" 
ParentOrgItemID="tcm:9-10-4" Title="Allergy & Respiratory Diseases" Type="4" 
Modified="2005-09-08T13:19:53" Icon="T4L0P0" PublishPath="/UCB/Therapy" 
Dir="Allergy"/>


So how do I know which node is assigned to which level?
 The node (Item ID="tcm:9-3-4") with ParentOrgItemID="tcm:0-9-1"  is the one 
next to root and should not be displayed
The node (Item ID="tcm:9-5-4")  with ParentOrgItemID="tcm:9-10-4"  is the one 
next to root and should also not be displayed

Finally I want to see ID="tcm:9-6-4" but dont want to hardcode this ID, just 
exclude the first navi-levels


I thought about something like: <xsl:if test="'ParentURI' != 'tcm:0-9-1'"> 



best regards,
Ragnar

PS: Find complete XSLT below

     <xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
xmlns:tcm="http://www.tridion.com/ContentManager/5.0";>
  <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
  <xsl:key name="ItemURI" match="tcm:ListOrganizationalItems/tcm:Item" 
use="@ID"/>
  <xsl:key name="ParentURI" match="tcm:ListOrganizationalItems/tcm:Item" 
use="@ParentOrgItemID"/>
  <xsl:template match="tcm:ListOrganizationalItems">
    <xsl:element name="HTML">
      <xsl:element name="HEAD">
        <xsl:element name="STYLE">
           --------- CSS - stuff ---------
        </xsl:element>
        <xsl:element name="SCRIPT">
          ------  Javascript ------------
        </xsl:element>
      </xsl:element>
      <xsl:apply-templates select="tcm:Item[not(key( 'ItemURI' , 
@ParentOrgItemID))]"/>
    </xsl:element>
  </xsl:template>
 <xsl:template match="tcm:Item">
    <xsl:if test="@Type=4">
      <xsl:element name="A">
        <xsl:attribute name="ID">x<xsl:value-of select="@ID"/></xsl:attribute>
        <xsl:attribute name="href">JavaScript:Toggle('<xsl:value-of 
select="@ID"/>');</xsl:attribute>-
      </xsl:element>
    </xsl:if>
    <xsl:element name="A">
      <xsl:attribute name="href"><xsl:value-of 
select="@PublishPath"/>\<xsl:value-of select="@Dir"/></xsl:attribute>
      <xsl:value-of select="substring(@Title,4)"/>
    </xsl:element>
    <xsl:element name="div">
               <xsl:attribute name="class">line</xsl:attribute>
    </xsl:element>
    <xsl:if test="@Type=4">
      <xsl:element name="DIV">
        <xsl:attribute name="ID"><xsl:value-of select="@ID"/></xsl:attribute>
<xsl:if test="count(key( 'ParentURI' , @ID)) > 0">
   <xsl:element name="UL">
      <xsl:apply-templates select="key( 'ParentURI' , @ID)"/>
   </xsl:element>
</xsl:if>
      </xsl:element>
    </xsl:if>
  </xsl:template>
</xsl:stylesheet>

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>