xsl-list
[Top] [All Lists]

Re: [xsl] [string to node]

2010-02-21 18:17:33
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)) &lt; 2 >
   .....
</xsl:if>

</xsl:stylesheet>

Cheers!
Aditya

On Sun, Feb 21, 2010 at 3:13 PM, David Carlisle 
<davidc(_at_)nag(_dot_)co(_dot_)uk> 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 £a is a node set of dd nodes and count($a) will tell you how many dd
there are in the set.

David






-- 

-Å∂i†¥å

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