Subject: Re: [xsl] [string to node] From: Aditya Sakhuja <aditya.sakhuja@xxxxxxxxx> Date: Sun, 21 Feb 2010 16:17:13 -0800 |
So, I have thought of <xsl:variable name="a" select="..."/> to get the value. however, I have to choose depending upon certain conditions, and hence the <xsl:choose> inside. Also, exsl:node-set() library is not complete (http://exslt.org/exsl/index.html). If you download this, the node-set xsl is missing. I had looked at this option earlier. However, I have just managed to get what I need working using the inherent, xalan:nodeset() which comes bundled with the Xalan-C processor. With Xalan-C one can have a structure like this: <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:xalan="http://xml.apache.org/xalan" exclude-result-prefixes="xalan"> ..... .... ... <xsl:if test="count(xalan:nodeset($a)) < 2 > ..... </xsl:if> </xsl:stylesheet> Cheers! Aditya On Sun, Feb 21, 2010 at 3:13 PM, David Carlisle <davidc@xxxxxxxxx> wrote: > On 21/02/2010 23:06, Aditya Sakhuja wrote: >> >> Hi, >> >> Thanks for testing it out. >> >> The inherent problem is that I get a string, and not a node-set, > > No. As stated in 2 previous replies, you get a result tree fragment rather > than a node set, or string. > >> needed by count(). David, ultimately the value in the variable >> obtained through value-of is not a node or a node set. Is there a way >> you think, I can get the count() fetch me the number of 'dd' elements >> using xalan-c processor ? > > in xslt 1 you can't directly query into a result tree fragment. > You coud use exslt:nose-set() extension function to turn your result tree > fragment into a node set (note if $a were a string you could not use > exslt:node-set) however most likely you do not need to create the result > tree fragment in the first place. > > If you use xsl:variable with select rather than with element content it > binds the value selected rather than a result tree fragment with copies of > the original nodes. > > <xsl;variable name="a" select="//dd"/> > > > then B#a is a node set of dd nodes and count($a) will tell you how many dd > there are in the set. > > David > > > -- -Cbib B%C%
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] [string to node], David Carlisle | Thread | Re: [xsl] [string to node], David Carlisle |
Re: [xsl] Client-side cross-platfor, Eric J. Bowman | Date | Re: [xsl] [string to node], David Carlisle |
Month |