xsl-list
[Top] [All Lists]

RE: How can I get context node in this complex expresion? (current( ) didn't work)

2005-05-04 14:26:50
Can't be done in a single XPath 1.0 expression - you need to build up the
result of the XPath expression in a series of variables declared at the XSLT
level.

In XPath 2.0 you use the "for" expression to bind variables at any level of
nesting, for example,

<xsl:apply-templates 
   select="ROW[for $x in COB_ID return $x =
$cob_rowset[CXC_CAD_ID=key('cad_key_ori', 
   $cob_rowset[COB_ID = $x]/CXC_CAD_ID)/CAD_REL_ID]/COB_ID]">

I'm assuming a ROW has only one COB_ID, otherwise these aren't equivalent. 

Michael Kay
http://www.saxonica.com/



-----Original Message-----
From: Jaime Stuardo [mailto:jstuardo(_at_)security(_dot_)cl] 
Sent: 04 May 2005 22:10
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] How can I get context node in this complex 
expresion? (current( ) didn't work)

Hi all...

This is the real case I have:

<xsl:apply-templates 
select="ROW[COB_ID=$cob_rowset[CXC_CAD_ID=key('cad_key_ori', 
$cob_rowset[COB_ID = 2]/CXC_CAD_ID)/CAD_REL_ID]/COB_ID]">

where:
      $cob_rowset : a nodeset that I assign previously. It is 
correctly assigned.
      'cad_key_ori' a key that is correctly defined as well.

That expresion works the way I want (showing some records 
according to the predicate). But that is a particular case. 
The general case is replacing the '2' above for the node 
COB_ID whose parent is ROW. For instance, I tried:

<xsl:apply-templates 
select="ROW[COB_ID=$cob_rowset[CXC_CAD_ID=key('cad_key_ori', 
$cob_rowset[COB_ID = 
current()/COB_ID]/CXC_CAD_ID)/CAD_REL_ID]/COB_ID]">

The call to current() didn't work (it didn't show anything 
and I know that 'COB_ID=2' is present in ROW nodeset). I 
think it is because current() is pointing to $cob_rowset context node.

Any help would be greatly appreciated.

Thanks
Jaime
      

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