Subject: RE: [xsl] node returned from a user function is no longer a node?? From: "Houghton,Andrew" <houghtoa@xxxxxxxx> Date: Mon, 11 Aug 2008 13:19:00 -0400 |
> From: Bordeman, Chris [mailto:Chris.Bordeman@xxxxxxxxxxxxxxxxx] > Sent: Monday, August 11, 2008 1:10 PM > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] node returned from a user function is no longer a node?? > > Consider this variable and the function it calls: > > <variable name="buyerfirstaddressnode" > select="fn:getfirstactiveaddressnode(buyer/Addresses)"/> > > <xsl:function name="fn:getfirstactiveaddressnode"> > <xsl:param name="addresses"/> > <xsl:if test="$addresses"> > <xsl:sequence select="addresses/Address[Sequence=1 and > IsActive=1]"/> > </xsl:if> > </xsl:function> > > Now, if I access $buyerfirstaddressnode/StreetName for instance, or any > other member, I get an EMPTY STRING. However, if I simply output the > $buyerfirstaddressnode variable, I get a string that LOOKS like it > contains the address data I want. > > So it seems that it's being converted to a string for some reason, so I > try to set the function's return type to as="node()" or as="element()" > (don't know the difference) but now the compiler seems to require an > object to always be returned, a case which I don't know how to handle > (returning () causes compiler complaint too). I think you need to change: <xsl:sequence select="addresses/Address[Sequence=1 and IsActive=1]"/> to <xsl:sequence select="$addresses/Address[Sequence=1 and IsActive=1]"/> note the $ Andy.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] node returned from a user fun, Bordeman, Chris | Thread | Re: [xsl] node returned from a user, Dimitre Novatchev |
[xsl] node returned from a user fun, Bordeman, Chris | Date | Re: [xsl] XSL: Print Euro, Pierre MacKay |
Month |