RE: [xsl] Not So Newbie XPath Question

Subject: RE: [xsl] Not So Newbie XPath Question
From: DPawson@xxxxxxxxxxx
Date: Mon, 19 Feb 2001 14:16:31 -0000
<?xml version = '1.0' encoding = 'utf-8'?> 
<!DOCTYPE xsl:stylesheeet
<!ENTITY nl "<xsl:text>&#x0A;&#xD;</xsl:text>">]>

<xsl:stylesheet version='1.0'

  <xsl:output method="text"/>

<xsl:template match="/">

<xsl:template match="z[a]">
  <xsl:if test="a">
    <xsl:apply-templates select="a"/>


<xsl:template match="a[not(following-sibling::a)]" >
  <xsl:value-of select="name(following-sibling::*[1])"/>

I'm sure it could be simplified.
hth DaveP

> I have an XML structure of the following form:
> <z>
>     <m/>
>     <n/>
>     <o/>
>     <a/>
>     <a/>
>     <a/>
>     <xp/>
>     <xq/>
>     <xr/>
> </z>
> In the above structure is a sample. In the XML I will be 
> dealing with there is an
> arbitrary number of child elements of "z".
> Amongst the child elements there is a sequence of zero or 
> more "a" elements.
> I need an XPath expression to select/match the first element 
> after this sequence
> of "a" elements(if present). The first element's name after 
> the "a" sequence is unknown.
> In the above example it just happens to be "xp"
> Is the following the most reasonable way to do it?
> z/*[preceding-sibling::a and not(self::a)][position() = 1]
> I have tested it and it seems to be ok. (Just does not seem 
> that intuitive)
> Any thoughts appreciated,
> Bern
>  XSL-List info and archive:

 XSL-List info and archive:

Current Thread