[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: node returned from a user function is no longer a
> From: Bordeman, Chris [mailto:Chris.Bordeman@xxxxxxxxxxxxxxxxx] > Sent: Monday, August 11, 2008 1:10 PM > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: 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.
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|