xsl-list
[Top] [All Lists]

[xsl] unction return value not a node?

2010-09-08 10:16:24
Hello,

Sorry but XSLT 2.0 and XPath 2.0 book is more than 1000 pages, so I'm
writing this:

I've this xpath expression that returns a node stored in a variable:

    <xsl:variable name="x" 
select="($airTraveler/preceding-sibling::ota:AirTraveler[(_at_)PassengerTypeCode!='INF'
 and substring( concat( gal:normNames( ota:PersonName/ota:Surname ), concat( 
gal:normNames( ota:PersonName/ota:GivenName ),gal:normNames( 
ota:PersonName/ota:NamePrefix ))),1,16) = $srnNP16 ], $airTraveler)[1]"/>


then if I do

    <xsl:value-of select="$x/preceding-sibling::ota:AirTraveler"/>

I obtain the preceding-sibling nodes.

but if I write this function to use the same xpath expression, quite 
complicated, in two places

  <xsl:function name="gal:func">
    <xsl:param name="airTraveler"/>
    <xsl:param name="srnNP16"/>
    <xsl:value-of 
select="($airTraveler/preceding-sibling::ota:AirTraveler[(_at_)PassengerTypeCode!='INF'
 and substring( concat( gal:normNames( ota:PersonName/ota:Surname ), concat( 
gal:normNames( ota:PersonName/ota:GivenName ),gal:normNames( 
ota:PersonName/ota:NamePrefix ))),1,16) = $srnNP16 ], $airTraveler)[1]"/>
  </xsl:function>

but when I write:

    <xsl:variable name="x" select="gal:func($airTraveler, $srnNP16 )"/>
    <xsl:value-of select="$x/preceding-sibling::ota:AirTraveler"/>

I don't obtain any preceding sibling.

Could you tell me why?

Many thanks

Bartolomeo


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