[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] value-of select problem


Subject: RE: [xsl] 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: [xsl] 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>


Current Thread
Keywords