Re: [xsl] Table of contents - for-each question

Subject: Re: [xsl] Table of contents - for-each question
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Thu, 26 Jan 2006 11:18:18 -0500
At 12:44 PM 1/24/2006, Lynn wrote:
Got a response back from an EAD listserv that worked like a charm.

That figures. It has to be a fairly common problem in EAD documents using c0x elements.


Since we're already inside a for-each loop, which mean that the current
context must be either head, c01[@level='series'], or c02
[@level='subseries'] ...
I'd suggest you try replacing:

<xsl:value-of select='head | c01
[@level="series"]/did/unittitle | c02 [@level="subseries"]/did/unittitle'/>

with:

<xsl:choose>
  <xsl:when test="name() = 'head'">
    <xsl:value-of select="."/>
  </xsl:when>
  <xsl:otherwise>
    <xsl:value-of select="did/unittitle"/>
  </xsl:otherwise>
</xsl:choose>

This could simply be:


<xsl:value-of select="self::head | did/unittitle"/>

Avoiding the name() test (which would be leaner and nicer as test="self::head" in any case).

Cheers,
Wendell



======================================================================
Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
  Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================

Current Thread