xsl-list
[Top] [All Lists]

RE: [xsl] value-of select problem

2006-08-16 06:58:42

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>
--~--

<Prev in Thread] Current Thread [Next in Thread>