Re: [xsl] Help Stepping through XML nodes back and forward

Subject: Re: [xsl] Help Stepping through XML nodes back and forward
From: Paul Hart <atomicjeep@xxxxxxxxx>
Date: Sat, 22 Jan 2005 21:42:57 +0000
Ok Heres a better explanation of my problem(hopefully):

I have a list of pages/sub pages and from ASP im passing the variable
'PageTCM' (the current page identifier) to the XSLT transformation.

I then need the XSLT to
1. Order the pages in the XML - using the 'order' attribute.
2. Find the current page in the ordered list.
3. Return the Next Page's filename and title attributes. - checking
that it is published first
4. Return the Previous Page's filename and title attributes. -
checking that it is published first.


NB. Being a XSLT novice I should point out that Im not sure that the
above is the most efficient order of events (should I find the current
page first then order only the pages in its group as opposed to
ordering all pages).


Thanks and Regards
Paul
----------------------------------------------------------------------------
Example
Inputs:
1. strCurrentPage = "tcm:Info"

Outputs:
1. strNextPagePath  = "company/sales.asp"
2. strNextPageTitle = "Sales"
3. strPreviousPagePath = "company/index.asp"
4. strPreviousPageTitle = "Our Company"
----------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<webstructure pagecount="10">
	<page title="tcm:Home0" tcm="Home" channel="10" att4="index.asp"
att8="True">
		<page tcm="tcm:Home" title="Home" order="10" filename="index.asp"
published="True"/>
		<page tcm="tcm:Company" title="Our Company" order="0"
filename="company/index.asp" published="True">
			<page tcm="tcm:Sales" title="Sales" order="2"
filename="company/sales.asp" published="True"/>
			<page tcm="tcm:Info" title="Info" order="1"
filename="company/info.asp" published="True"/>
			<page tcm="tcm:Contact" title="Contact" order="3"
filename="company/contact.asp" published="True"/>
		</page>
		<page tcm="tcm:Prods" title="Our Products" order="0"
filename="products/index.asp" published="True">
			<page tcm="tcm:Goods" title="Goods" order="1"
filename="products/goods.asp" published="True"/>
			<page tcm="tcm:Services" title="Services" order="2"
filename="products/services.asp" published="True"/>
		</page>
	</page>
</webstructure>
----------------------------------------------------------------------------







On Sat, 22 Jan 2005 11:37:22 +0000, Paul Hart <atomicjeep@xxxxxxxxx> wrote:
> I maybe phrased that wrong, it love it when it works :-) and hate it
> when it dont(same as any other language).
>
> I have only been developing with XSLT for  a few weeks but Im
> impressed already with its flexibility, so give another chance ;-).
>
> I'll compose a better explanation of my problem in the hope that
> someone can help
>
> Regards
> Paul
>
>
> On Sat, 22 Jan 2005 11:00:08 +0000, Antsnio Mota <amsmota@xxxxxxxxx> wrote:
> > If you hate it, leave it...
> >
> >
> > On Fri, 21 Jan 2005 19:21:35 +0000, Paul Hart <atomicjeep@xxxxxxxxx>
wrote:
> > > Firstly let me say I hate XSLT, sometimes it easy then other times its
> > > just plain confusing!!
> > > Heres my problem.
> > > I have an xml doc(navigation.xml), which is the basis for navigation
> > > between pages in our site.  I'm adding various types of additional
> > > navigation up,home etc as options which can be turned on/off.
> > > Iv been asked to add a linear hierarchical navigation option (Back &
Forward)
> > >
> > > Im passing in the current page id (tcm attribute) then I need to find
> > > the current page check if its published and also order the page nodes
> > > (order attribute), so it needs to be able to navigate
> > > siblings/children/parents etcl and check when it reaches the start/end
> > > etc..
> > >
> > > To summarize its a next and back button functionality I want on each
page.
> > >
> > > XML Parser is MSXML + vanilla asp
> > >
> > > Any help at all would be greatly appreciated
> > >
> > > A sample of the xml is included below:
> > > <?xml version="1.0" encoding="UTF-8"?>
> > > <webstructure pagecount="10" lastmodified="19/01/2005 15:07:52">
> > >         <page title="tcm:4-148994-64" tcm="Home" channel="10"
> > > att4="/lts/testbed/index.asp" att5="Yes" att6="Young people" att7=""
> > > att8="True">
> > >                 <page tcm="tcm:4-148994-64" title="Home" order="10"
> > > filename="/lts/testbed/index.asp" leftmenu="Yes" titleattribute="Young
> > > people" accesskey="" published="True"/>
> > >                 <page tcm="tcm:4-148843-64" title="level1" order="0"
> > > filename="/lts/testbed/level1/index.asp" leftmenu="Yes"
> > > titleattribute="" accesskey="" published="True">
> > >                         <page tcm="tcm:4-148844-64" title="page1"
order="1"
> > > filename="/lts/testbed/level1/page1.asp" leftmenu="Yes"
> > > titleattribute="" accesskey="" published="True"/>
> > >                         <page tcm="tcm:4-148845-64" title="page2"
order="2"
> > > filename="/lts/testbed/level1/page2.asp" leftmenu="Yes"
> > > titleattribute="" accesskey="" published="True"/>
> > >                         <page tcm="tcm:4-148846-64" title="page3"
order="3"
> > > filename="/lts/testbed/level1/page3.asp" leftmenu="Yes"
> > > titleattribute="" accesskey="" published="True"/>
> > >                 </page>
> > >                 <page tcm="tcm:4-148847-64" title="level2" order="0"
> > > filename="/lts/testbed/level2/index.asp" leftmenu="Yes"
> > > titleattribute="" accesskey="" published="True">
> > >                         <page tcm="tcm:4-148848-64" title="page1"
order="1"
> > > filename="/lts/testbed/level2/page1.asp" leftmenu="Yes"
> > > titleattribute="" accesskey="" published="True"/>
> > >                         <page tcm="tcm:4-148849-64" title="page2"
order="2"
> > > filename="/lts/testbed/level2/page2.asp" leftmenu="Yes"
> > > titleattribute="" accesskey="" published="True"/>
> > >                         <page tcm="tcm:4-148850-64" title="page3"
order="3"
> > > filename="/lts/testbed/level2/page3.asp" leftmenu="Yes"
> > > titleattribute="" accesskey="" published="True"/>
> > >                 </page>
> > >         </page>
> > > </webstructure>

Current Thread