Subject: RE: value-of select problem
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 15 Aug 2006 23:54:44 +0100
|
It's similar to another thread today called "Wrapping Problem" - usually
called positional grouping.
Try following-sibling::*[self::Mname|self::Lname][1][self::Mname]
That's the first following sibling that's an Mname or an Lname, provided
it's an Mname.
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: cchelius@xxxxxxxxxxxxxxx [mailto:cchelius@xxxxxxxxxxxxxxx]
> Sent: 15 August 2006 22:35
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: value-of select problem
>
> I have included a snippet from my xslt that I am having
> difficulties with.
> My source XML can contain several authors names but those
> names don't have to contain a middle name. The problem with
> my xslt is that when an author doesn't contain a middle name
> it will pull the middle name from the next author after it.
> Obviously this is no good as it creates a name that is
> incorrect. I'm not sure how to tell the xslt that if there is
> no middle name not to grab <authorMname from the next author.
> Any ideas?
>
> XML Code Sample:
>
> <author><authorFname>John</authorFname>
> <authorLname>Dai</authorLname>,
> <authorDegree>MD</authorDegree>;
>
> <authorFname>Jane</authorFname><authorMname>Austin</authorMnam
> e><authorLname>Smith</authorLname></author>
>
>
> XSLT Sample:
>
> <xsl:for-each select="Story/author/authorFname">
> <!-- Adjusted to allow for multiple
> authors -->
> <Author>
> <FirstName>
> <xsl:value-of select="."/>
> </FirstName>
> <MiddleName>
> <xsl:value-of
> select="following-sibling::authorMname[1]"/>
> </MiddleName>
> <LastName>
> <xsl:value-of
> select="following-sibling::authorLname[1]"/>
> </LastName>
> <Suffix>
> <xsl:value-of
> select="following-sibling::authorSuffix[1]"/>
> </Suffix>
> <Affiliation>
> <xsl:value-of
> select="following-sibling::authorAffiliation[1]"/>
> </Affiliation>
> </Author>
> </xsl:for-each>
|