Thanks Michael, that worked! Could you elaborate a bit on how
this rule is working?
(a) following-sibling::* all the following siblings
(b) [self::Mname|self::Lname] all the following siblings whose name is
Mname or Lname
(c) [1] the first node in (b)
(d) [self::Mname] the node selected by (c) if it is named
Mname, or nothing if it isn't
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: Chad Chelius [mailto:cchelius(_at_)agitraining(_dot_)com]
Sent: 16 August 2006 14:30
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] value-of select problem
On Aug 15, 2006, at 6:54 PM, Michael Kay wrote:
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(_at_)agitraining(_dot_)com
[mailto:cchelius(_at_)agitraining(_dot_)com]
Sent: 15 August 2006 22:35
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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>
--~------------------------------------------------------------------
XSL-List info and archive:
http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--