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>

</xsl:text>">]> <xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:saxon="http://icl.com/saxon" > <xsl:output method="text"/> <xsl:template match="/"> <xsl:apply-templates/> </xsl:template> <xsl:template match="z[a]"> <xsl:if test="a"> <xsl:apply-templates select="a"/> </xsl:if> </xsl:template> <xsl:template match="a[not(following-sibling::a)]" > <xsl:value-of select="name(following-sibling::*[1])"/> </xsl:template> </xsl:stylesheet> 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: http://www.mulberrytech.com/xsl/xsl-list > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Not So Newbie XPath Quest, Michael Kay | Thread | Re: [xsl] Not So Newbie XPath Quest, Bernard Harrison |
Re: [xsl] Keyword xsl:number may no, David Carlisle | Date | Re: [xsl] transformation of any XML, Wendell Piez |
Month |