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

single display of double elements but how to use gener

Subject: single display of double elements but how to use generate-id
From: Heiko Specht <heiko@xxxxxxxxxx>
Date: Thu, 19 Dec 2002 17:02:15 +0100
dynamicoptionlist
Hello XSL-List Members,

while you all discuss strange (for me) things about verse extractions
i hope my question is trivial for you.

what i want to do is a javascript extract like this:

------------------------------------------
var listB = new DynamicOptionList("B","A");
listB.addOptions("PM2Q 6","Mac","Mac");
listB.addOptions("PageMaker 7.0","Windows","Windows","Mac","Mac");
listB.setDefaultOption("PM2Q 6","Mac");
listB.setDefaultOption("PageMaker 7.0","Mac");
------------------------------------------

done with this xsl (works):
------------------------------------------

<xsl:text>var listB = new DynamicOptionList("B","A");</xsl:text>
<xsl:for-each select="xalan:nodeset($smallversion)/vers">
            <xsl:text>listB.addOptions("</xsl:text>
                <xsl:value-of select="." /><xsl:text>"</xsl:text>
                <xsl:variable name="thisname" select="."/>
                
                <xsl:variable name="systemsForEach">
                <xsl:for-each select="$articles[contains(articleName, $thisname)]">
                        <sfffe><xsl:text>,"</xsl:text><xsl:value-of select="articleenv/name"/>","<xsl:value-of select="articleenv/name"/><xsl:text>"</xsl:text></sfffe>
                </xsl:for-each>
                </xsl:variable>
                <xsl:variable name="newnode" select="xalan:nodeset($systemsForEach)/sfffe"/>
                <xsl:for-each select="$newnode">
                        <xsl:if test="generate-id(.) =  generate-id($newnode[.=current()])">
                                <xsl:value-of select="."/>
                        </xsl:if>
                </xsl:for-each>
                                
                <xsl:text>);</xsl:text>
</xsl:for-each>
<xsl:for-each select="xalan:nodeset($smallversion)/vers">
                <xsl:text>listB.setDefaultOption("</xsl:text>
                <xsl:value-of select="." />
                <xsl:text>",</xsl:text>
                <xsl:for-each select="xalan:nodeset($smallsys)/sys">
                        <xsl:if test="position()='1'">
                                <xsl:text>"</xsl:text><xsl:value-of select="."/><xsl:text>"</xsl:text>
                        </xsl:if>
                </xsl:for-each>
            <xsl:text>);</xsl:text>
</xsl:for-each>
----------------------------------------


but the next part drives me crazy.

the output should be like this without doubles of languages:

----------------------------------------

var listC = new DynamicOptionList("C","A","B");
listC.addOptions("PM2Q 6|Mac","english/anglais","EN");
listC.addOptions("PageMaker 7.0|Windows","german/allemand","DE","german/allemand","DE","english/anglais","EN");
listC.addOptions("PageMaker 7.0|Mac","german/allemand","DE","german/allemand","DE");
                  ^firstselect    ^secondselect                    ^option     ^value
-----------------------------------------

what should the script do: when someone choose an option in a select
box the othe box should be filled automatically with new options
without reloading. (the jscript works fine allready)
but as you can see, the languages are displayed twice.

here is the piece of xsl that makes the stuff:
i have marked the criteric point with an command.

any one got an idea ?

at the bottom you can find the the xml i work with !

------------------------------------------

<xsl:text>var listC = new DynamicOptionList("C","A","B");</xsl:text>
<xsl:for-each select="xalan:nodeset($smallversion)/vers">
            <xsl:variable name="thisname" select="."/>
                <xsl:variable name="systemsForEach">
                <xsl:for-each select="$articles[contains(articleName, $thisname)]">
                        <xsl:variable name="envname" select="articleenv/name"/>
                        <sofar>
                                <xsl:text>listC.addOptions(</xsl:text>
                                <xsl:text>"</xsl:text>
                                <xsl:value-of select="$thisname"/>|<xsl:value-of select="$envname"/>
                                <xsl:text>"</xsl:text>
                                <xsl:for-each select="$articles[contains(articleName, $thisname)]">
                                        <xsl:if test="contains(articleenv/name,$envname)">
                                        
                                                <!-- at this point i need to display each language only once -->
                                                <xsl:text>,"</xsl:text><xsl:value-of select="articlelanguage/name"/><xsl:text>","</xsl:text><xsl:value-of select="articlelanguage/shortname"/><xsl:text>"</xsl:text>
                                                <!-- end language display -->
                                        
                                        </xsl:if>
                                </xsl:for-each>
                                <xsl:text>);</xsl:text>
                        </sofar>
                </xsl:for-each>
                </xsl:variable>
                <xsl:variable name="newnode" select="xalan:nodeset($systemsForEach)/sofar"/>
                <xsl:for-each select="$newnode">
                        <xsl:if test="generate-id(.) =  generate-id($newnode[.=current()])">
                                <xsl:value-of select="."/>
                        </xsl:if>
                </xsl:for-each>
</xsl:for-each>


-- 
Best regards,
 Heiko                          mailto:heiko@xxxxxxxxxx


<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="neutest.xsl" encoding="UTF-8"?>
<page key="softline.de.product_show"><article-list><article><article_id>21652</article_id><articleName>PM2Q 6 MAC en.</articleName><articleno>21652</articleno><archived>0</archived><weight>0.15000000596046448</weight><deliverable>1</deliverable>
<reservationstock>0.0</reservationstock><articleenv><articleenv_id>2</articleenv_id><name>Mac</name><shortname>M</shortname></articleenv><articlelanguage><articlelanguage_id>3</articlelanguage_id><name>english/anglais</name><shortname>EN</shortname></articlelanguage>
<articleclass1_id>0</articleclass1_id><articleclass2_id>0</articleclass2_id><articleclass3_id>0</articleclass3_id><articleclass4_id>0</articleclass4_id><expiration>1</expiration><type><type_id>1</type_id><pricecalculator_id>1</pricecalculator_id><name>standard</name>
<deliverable>1</deliverable></type><retailprice><retailprice_id>33914</retailprice_id><article_id>21652</article_id><pricetype_id>100</pricetype_id><client_id>1</client_id><price>145.69</price><bruttoprice>169.0</bruttoprice><currency><currency_id>114</currency_id><name>EURO</name>
<shortname>EUR</shortname><exchange>1.0</exchange><isoname>EUR</isoname><isocode>978</isocode></currency><vatrate>16.0</vatrate></retailprice></article><article><article_id>957550</article_id><articleName>PageMaker 7.0 WIN de.</articleName><articleno>PMA00003</articleno><archived>0</archived>
<weight>1.2999999523162842</weight><deliverable>1</deliverable><reservationstock>0.0</reservationstock><articleenv><articleenv_id>3</articleenv_id><name>Windows</name><shortname>W</shortname></articleenv><articlelanguage><articlelanguage_id>5</articlelanguage_id><name>german/allemand</name>
<shortname>DE</shortname></articlelanguage><articleclass1_id>0</articleclass1_id><articleclass2_id>0</articleclass2_id><articleclass3_id>0</articleclass3_id><articleclass4_id>0</articleclass4_id><expiration>0</expiration><type><type_id>1</type_id><pricecalculator_id>1</pricecalculator_id>
<name>standard</name><deliverable>1</deliverable></type><retailprice><retailprice_id>199698</retailprice_id><article_id>957550</article_id><pricetype_id>100</pricetype_id><client_id>1</client_id><price>818.1</price><bruttoprice>949.0</bruttoprice><currency><currency_id>114</currency_id>
<name>EURO</name><shortname>EUR</shortname><exchange>1.0</exchange><isoname>EUR</isoname><isocode>978</isocode></currency><vatrate>16.0</vatrate></retailprice></article><article><article_id>957551</article_id><articleName>PageMaker 7.0 MAC de.</articleName><articleno>PMA00004</articleno>
<archived>0</archived><weight>1.2999999523162842</weight><deliverable>1</deliverable><reservationstock>0.0</reservationstock><articleenv><articleenv_id>2</articleenv_id><name>Mac</name><shortname>M</shortname></articleenv><articlelanguage><articlelanguage_id>5</articlelanguage_id>
<name>german/allemand</name><shortname>DE</shortname></articlelanguage><articleclass1_id>0</articleclass1_id><articleclass2_id>0</articleclass2_id><articleclass3_id>0</articleclass3_id><articleclass4_id>0</articleclass4_id><expiration>0</expiration><type><type_id>1</type_id>
<pricecalculator_id>1</pricecalculator_id><name>standard</name><deliverable>1</deliverable></type><retailprice><retailprice_id>199703</retailprice_id><article_id>957551</article_id><pricetype_id>100</pricetype_id><client_id>1</client_id><price>818.1</price><bruttoprice>949.0</bruttoprice>
<currency><currency_id>114</currency_id><name>EURO</name><shortname>EUR</shortname><exchange>1.0</exchange><isoname>EUR</isoname><isocode>978</isocode></currency><vatrate>16.0</vatrate></retailprice></article><article><article_id>957552</article_id>
<articleName>Update auf PageMaker 7.0 MAC de. von x.x</articleName><articleno>PMA00005</articleno><archived>0</archived><weight>1.2000000476837158</weight><deliverable>1</deliverable><reservationstock>0.0</reservationstock><articleenv><articleenv_id>2</articleenv_id><name>Mac</name>
<shortname>M</shortname></articleenv><articlelanguage><articlelanguage_id>5</articlelanguage_id><name>german/allemand</name><shortname>DE</shortname></articlelanguage><articleclass1_id>3</articleclass1_id><articleclass2_id>0</articleclass2_id><articleclass3_id>0</articleclass3_id>
<articleclass4_id>0</articleclass4_id><expiration>0</expiration><type><type_id>1</type_id><pricecalculator_id>1</pricecalculator_id><name>standard</name><deliverable>1</deliverable></type><retailprice><retailprice_id>199708</retailprice_id><article_id>957552</article_id>
<pricetype_id>100</pricetype_id><client_id>1</client_id><price>128.45</price><bruttoprice>149.0</bruttoprice><currency><currency_id>114</currency_id><name>EURO</name><shortname>EUR</shortname><exchange>1.0</exchange><isoname>EUR</isoname><isocode>978</isocode></currency>
<vatrate>16.0</vatrate></retailprice></article><article><article_id>957553</article_id><articleName>Update auf PageMaker 7.0 WIN de. von x.x</articleName><articleno>PMA00006</articleno><archived>0</archived><weight>1.2000000476837158</weight><deliverable>1</deliverable>
<reservationstock>0.0</reservationstock><articleenv><articleenv_id>3</articleenv_id><name>Windows</name><shortname>W</shortname></articleenv><articlelanguage><articlelanguage_id>5</articlelanguage_id><name>german/allemand</name><shortname>DE</shortname></articlelanguage>
<articleclass1_id>0</articleclass1_id><articleclass2_id>0</articleclass2_id><articleclass3_id>0</articleclass3_id><articleclass4_id>0</articleclass4_id><expiration>0</expiration><type><type_id>1</type_id><pricecalculator_id>1</pricecalculator_id><name>standard</name><deliverable>1</deliverable>
</type><retailprice><retailprice_id>199713</retailprice_id><article_id>957553</article_id><pricetype_id>100</pricetype_id><client_id>1</client_id><price>128.45</price><bruttoprice>149.0</bruttoprice><currency><currency_id>114</currency_id><name>EURO</name><shortname>EUR</shortname>
<exchange>1.0</exchange><isoname>EUR</isoname><isocode>978</isocode></currency><vatrate>16.0</vatrate></retailprice></article><article><article_id>960563</article_id><articleName>Update auf PageMaker 7.0 WIN en. von x.x</articleName><articleno>PMA00012</articleno>
<archived>0</archived><weight>1.2000000476837158</weight><deliverable>1</deliverable><reservationstock>0.0</reservationstock><articleenv><articleenv_id>3</articleenv_id><name>Windows</name><shortname>W</shortname></articleenv><articlelanguage><articlelanguage_id>3</articlelanguage_id>
<name>english/anglais</name><shortname>EN</shortname></articlelanguage><articleclass1_id>3</articleclass1_id><articleclass2_id>0</articleclass2_id><articleclass3_id>0</articleclass3_id><articleclass4_id>0</articleclass4_id><expiration>0</expiration><type><type_id>1</type_id>
<pricecalculator_id>1</pricecalculator_id><name>standard</name><deliverable>1</deliverable></type><retailprice><retailprice_id>221191</retailprice_id><article_id>960563</article_id><pricetype_id>100</pricetype_id><client_id>1</client_id><price>128.45</price><bruttoprice>149.0</bruttoprice>
<currency><currency_id>114</currency_id><name>EURO</name><shortname>EUR</shortname><exchange>1.0</exchange><isoname>EUR</isoname><isocode>978</isocode></currency><vatrate>16.0</vatrate></retailprice></article></article-list><cart><priceSubTotal>0.00</priceSubTotal><VAT>0.00</VAT>
<priceTotal>0.00</priceTotal><sumTotal>0.00</sumTotal><sumVAT>0.00</sumVAT></cart><usertracking><client_id>1</client_id><document>product_show_11567</document></usertracking></page> 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


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.