xsl-list
[Top] [All Lists]

RE: [xsl] XSL-T should naturally loop? not grabbing all the children node-sets..

2008-04-22 08:58:41
Ok let me try again and I will once again post the test xml at the end.

When they use the left menu and it has a flyout menu, that means there
are children. So when the Click the parent on the first menu level that
means we want them to land on a category page where we creat an
independent div for EACH child category. As you can see in the example
XML this occurs 3 distinct times. 2 times at the Sub category level. And
once, at the sub-sub-category level.

For now we don't have to worry about a sub-sub-sub potential flyout in
future designs...

The value that is passed in $paraCatagory for the very first sub menu is
"c1_products"

This means I am able to "FIND" the category PARENT node-set in the XML.
from their I simple want to traverse through all children elements and
create div's for them.

HOw is this done in XSLT 1.0?


Thanks so much.

Daniel



<?xml version="1.0" encoding="iso-8859-1"?>
<menu id="menuData">
 <!--&#8482; trademark-->
 <!--&#174;  registered-->
        <category name="c1_products" display_name="Category One">
                <info>
                        <keyword>C1</keyword>
                        <link>/category/c1_products</link>
                        <titletag>C1 Products from our store - 9 Words
for best SEO</titletag>
                        <images>
                                <image/>
                        </images>
                </info>
                <category name="c1_sub1_products"
display_name="sub-Category c1_sub1">
                        <info>
                                <keyword>C1SUB1</keyword>
        
<link>/products/c1_products/c1_sub1_products</link>
                                <titletag>C1SUB1 Products from our store
- 9 Words for best SEO</titletag>
                                <images>
        
<image>/imagesEdp/default_sm.jpg</image>
                                </images>
                        </info>
                </category>
        </category>
        <category name="c2_products" display_name="Category Two">
                <info>
                        <keyword>C2</keyword>
                        <link>/category/c2_products</link>
                        <titletag>C2 Products from our store - 9 Words
for best SEO</titletag>
                        <images>
                                <image/>
                        </images>
                </info>
                <category name="c2_sub1_products"
display_name="sub-Category c2_sub1">
                        <info>
                                <keyword>C2SUB1</keyword>
        
<link>/products/c2_products/c2_sub1_products</link>
                                <titletag>C2SUB1 Products from our store
- 9 Words for best SEO</titletag>
                                <images>
        
<image>/imagesEdp/default_sm.jpg</image>
                                </images>
                        </info>
                </category>
                <category name="c2_sub2_products"
display_name="sub-Category c2_sub2">
                        <info>
                                <keyword>C2SUB2</keyword>
        
<link>/products/c2_products/c2_sub2_products</link>
                                <titletag>C2SUB2 Products from our store
- 9 Words for best SEO</titletag>
                                <images>
        
<image>/imagesEdp/default_sm.jpg</image>
                                </images>
                        </info>
                </category>
                <category name="c2_sub3_products"
display_name="sub-Category c2_sub3">
                        <info>
                                <keyword>C2SUB3</keyword>
        
<link>/category/c2_products/c2_sub3_products</link>
                                <titletag>C2SUB3 Products from our store
- 9 Words for best SEO</titletag>
                                <images>
        
<image>/imagesEdp/default_sm.jpg</image>
                                </images>
                        </info>
                        <category name="c2_sub_sub1_products"
display_name="sub-sub-Category c2_sub_sub1">
                                <info>
                                        <keyword>C2SUBSUB1</keyword>
        
<link>/products/c2_products/c2_sub3_products/c2_sub_sub1_products</link>
                                        <titletag>C2SUBSUB1 Products
from our store - 9 Words for best SEO</titletag>
                                        <images>
        
<image>/imagesEdp/default_sm.jpg</image>
                                        </images>
                                </info>
                        </category>
                        <category name="c2_sub_sub2_products"
display_name="sub-sub-Category c2_sub_sub2">
                                <info>
                                        <keyword>C2SUBSUB2</keyword>
        
<link>/products/c2_products/c2_sub3_products/c2_sub_sub2_products</link>
                                        <titletag>C2SUBSUB2 Products
from our store - 9 Words for best SEO</titletag>
                                        <images>
        
<image>/imagesEdp/default_sm.jpg</image>
                                        </images>
                                </info>
                        </category>
                </category>
        </category>
        <category name="c3_products" display_name="Category Three">
                <info>
                        <keyword>C3</keyword>
                        <link>/products/c3_products</link>
                        <titletag>C3 Products from our store - 9 Words
for best SEO</titletag>
                        <images>
                                <image/>
                        </images>
                </info>
        </category>
        <category name="c4_products" display_name="Category Four">
                <info>
                        <keyword>C4</keyword>
                        <link>/products/c4_products</link>
                        <titletag>C4 Products from our store - 9 Words
for best SEO</titletag>
                        <images>
                                <image/>
                        </images>
                </info>
        </category>
        <category name="c5_products" display_name="Category Five">
                <info>
                        <keyword>C5</keyword>
                        <link>/products/c5_products</link>
                        <titletag>C5 Products from our store - 9 Words
for best SEO</titletag>
                        <images>
                                <image/>
                        </images>
                </info>
        </category>
        <category name="c6_products" display_name="Category Six"
display="no">
                <info>
                        <keyword>C6</keyword>
                        <link>/products/c6_products</link>
                        <titletag>C6 Products from our store - 9 Words
for best SEO</titletag>
                        <images>
                                <image/>
                        </images>
                </info>
        </category>
</menu> 

-----Original Message-----
From: David Carlisle [mailto:davidc(_at_)nag(_dot_)co(_dot_)uk] 
Sent: Tuesday, April 22, 2008 11:49 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] XSL-T should naturally loop? not grabbing all the
children node-sets..



What do I need to do differently that I am not understanding?


 <xsl:template match="category">
  <xsl:choose>
   <xsl:when test="(@name=$paraCatagory)">

    <div class="cat_block">
     <div class="cat_module">
      <xsl:value-of select="category/@display_name"/>

here you have  match="category"> so the current node is a categoiry
element so the  select="category is selecting child nodes of category
that are also called category, You select all such children but (in xslt
1) value-of will just give you the string value of the first node
selected.

Noweher do yo iterate through the child catagories with
xsl:apply-templates or xsl:for-each, so it's not clear why you expect to
loop over these, probably you want to apply-templates to the child
elemsnts but not knowing what output you want I can't really suggest any
code changes.


As Michael said this will do nothing if the global parameter does not
match the name on the outer element,

David

--~------------------------------------------------------------------
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>
--~--


--~------------------------------------------------------------------
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>
--~--