Subject: RE: [xsl] What's wrong with my ancestor syntax?|
From: "Joe Fawcett" <joefawcett@xxxxxxxxxxx>
Date: Tue, 27 Mar 2007 15:27:21 +0100
From: "Austin, Darrel" <Darrel.Austin@xxxxxxxxxxxxxxxxxx> Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> Subject: RE: [xsl] What's wrong with my ancestor syntax? Date: Tue, 27 Mar 2007 09:15:56 -0500
(OOOPS...sent that last email before finishing...sorry about that...)
> I think you want to know...
Hmm...I don't think I fully explained what I was looking for very well. ;o)
We store out entire site structure in XML. We want to make an RSS feed that will return the most recently updated pages that fall underneath a specific node of the menu.
So, if my structure was:
Home About - staff - - mary - - bob Contact Downloads
I want to be able to say "grab the recently updated pages in the 'staff' section" so I only want to grab staff, mary, and bob, and then sort them by date.
The more I look at this, the more I'm confused as to if I want to select descenders or ascenders in the match statement. It appears I could use both methods via different syntax?
> if the current eleemnt or ancestor > has a pageID child, so that's > > <xsl:for-each > select="*/menuItem[ancestor-or-self::menuItem/pageID = $pageID]">
Hmm...that doesn't quite work either. Here's some specific Xml:
<menuItems> <menuItem> <pageID>938</pageID> <browserTitle>Home Page</browserTitle> <lastUpdate>2006/06/12</lastUpdate> <menuItem> <pageID>998</pageID> <browserTitle>District Administration</browserTitle> <lastUpdate>2006/06/06</lastUpdate> </menuItem> </menuItems>
I want to pass in the pageID of '938' and, as such, grab both nodes in the above XML.
I think, in english, I want to say "grab every menuItem that has a pageID of 938 or is a child of a menuItem with a pageID of 938"
Said that way, I should probably use descendants. I think I'm confused between the concept of 'is a child of' vs. 'has a parent of'.