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
smime.p7s
Description: S/MIME cryptographic signature