[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: [string to node]

Subject: Re: [string to node]
From: Aditya Sakhuja <aditya.sakhuja@xxxxxxxxx>
Date: Sun, 21 Feb 2010 16:17:13 -0800
Re:  [string to node]
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@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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.