xsl-list
[Top] [All Lists]

RE: [xsl] What's wrong with my ancestor syntax?

2007-03-27 07:16:20
(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'. 

-Darrel

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