[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: XSL-T should naturally loop? not grabbing all the

Subject: RE: XSL-T should naturally loop? not grabbing all the children node-sets..
From: "Dan Acuff" <dacuff@xxxxxxxxxxxxxx>
Date: Tue, 22 Apr 2008 11:57:58 -0400
RE:  XSL-T should naturally loop? not grabbing all the
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@xxxxxxxxx]
Sent: Tuesday, April 22, 2008 11:49 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re:  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

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.