xsl-list
[Top] [All Lists]

Selecting all siblings and self into a node-set

2004-03-28 16:37:03
I would like to build a node-set that I can use to
create a menu-bar in an HTML display.

I have an xml file that describes the layout of
the website with the following content:

<<<<<

<website>
  <webpage>
    <name>home</name>
        <file>../xml/home.xml</file>
  </webpage>
  <webpage>
    <name>clients</name>
    <file>../xml/clients.xml</file>
  </webpage>
  <webpage>
    <name>contact</name>
    <file>../xml/contact.xml</file>
  </webpage>
</website>

>>>>>

I load this XML file into my XSL style sheet with:

<xsl:template match="/site">
  <xsl:variable name="menutree" select="document(structure/file)"/>
  <xsl:apply-templates select="$menutree" mode="meta2" />
</xsl:template>

with the variable "menutree" containing the parsed file.

Then I have a template matching "webpage":

<xsl:template match="webpage" mode="meta2">
  <xsl:variable name="menu-names">
    <xsl:value-of select="preceding-sibling::webpage[*]/name"/>
    <xsl:value-of select="name" />
    <xsl:value-of select="following-sibling::webpage[*]/name"/>
  </xsl:variable>

  <xsl:value-of select="$menu-names" />
  <xsl:apply-templates mode="meta2" />
</xsl:template>


I expect the output to be:

<<<<<

homeclientscontact

homeclientscontact

homeclientscontact

>>>>>

but instead I get:

<<<<<

homeclients

homeclientscontact

homecontact

>>>>>

which indicates that each "value-of" operator is only
picking up one node.

How can I get _all_ preceding and following
node's "name" elements into a single node-set?

Thank you!

Randy

Attachment: smime.p7s
Description: S/MIME cryptographic signature

<Prev in Thread] Current Thread [Next in Thread>