Subject: RE: [xsl] ?Dataislands? From: "Chris Bayes" <chris@xxxxxxxxxxx> Date: Fri, 1 Mar 2002 09:27:59 -0000 |
Rosa, The best way to do this is to generate html from your xml which has an attribute that contains an xpath to the associated xml element or calls a function with the path as a parameter. Say your xml looked something like this <questions> <tab no="1"> <question text="what is your favourite colour"></question> <question text="what is your favourite day"></question> </tab> <tab no="2"> <question text="what is your favourite colour"></question> <question text="what is your favourite day"></question> </tab> </questions> You could have xslt that displays tabs similar to the paging examples at http://www.bayes.co.uk/xml/index.xml?/xml/tutorial/paging/paging.xml Then for questions the xslt would be something like <xsl:template match="question"> <xsl:value-of select="@text" /> <input type="text" value="{.}"> <xsl:attribute name="onblur">Javascript:updateXML(this, '<xsl:call-template name="path" />');</xsl:attribute> </input> </xsl:template> <xsl:temlpate name="path"> <xsl:for-each select="(ancestor-or-self::*)"> /*[<xsl:value-of select="1+count(preceding-sibling::*)"/>] </xsl:for-each> </xsl:template> Which would produce this html for the second tab what is your favourite colour <input type="text" value="" onblur="Javascript:updateXML(this, '/*[1]/*[2]/*[1]')'" /> what is your favourite day <input type="text" value="" onblur="Javascript:updateXML(this, '/*[1]/*[2]/*[2]')'" /> Then your update function would simply be something like function updateXML(obj, path){ var node = XMLISLAND.selectSingleNode(path); node.nodeValue = obj.value; } I wouldn't use data islands though it is much easier to just create an xml and xsl object var XMLOBJECT = new ActiveXObject("MSXML2.DOMDocument"); var XSLOBJECT = new ActiveXObject("MSXML2.FreeThreadedDOMDocument"); Ciao Chris XML/XSL Portal http://www.bayes.co.uk/xml > -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Rosa Cheng > Sent: 28 February 2002 22:25 > To: 'xsl-list@xxxxxxxxxxxxxxxxxxxxxx' > Subject: [xsl] ?Dataislands? > > > Can anyone please tell me what is the best way to approach > such a problem using XSL and XML? > > I have a page of questions that are divided into tab > sections, with a bar of tabs at the top of the page. You can > tab through them or click next to go onto the next tab > section. You can also come back to the tab sections before > by clicking on the tabs at the top of the page. What I want > to do though is to ONLY submit all the answers at the very > end of the series of questions, i.e. there is a submit button > only on the very last tab page. But as I change the answers > and tab through, I want to also keep the answers I had > entered before. This means I have to somehow save the > answers entered on the client side through the course of > questions answering. > > There is one possible solution that has come up and it is: > The original XML will come in and a tabbed questions page > will be displayed based on that original XML. This XML will > also be binded to a dataisland. In fact from there onwards, > the pages will be displayed using the XML from the > dataisland. So all I need to do is to just keep updating the > XML binded to the dataisland. And after the user is > satisfied with what it has answered, then the XML binded to > the dataisland will be submitted to the server. (But then > again, it also means I need to write some script that will > update the dataisland XML with the new answers on the page > with each tab click.) > > I'm not sure whether this is the best approach, can anyone > please tell me whether there is a better way or this approach > is fine? If this approach is fine, can anyone direct me to > an example of such a page or where to find the javascript to > update the binded XML with answers grabbed from the HTML page > displayed? > > Thank you in advance. > > Rosa > > P.S. if there is anything that is still unclear please tell > me, I will try to explain it better. > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] ?Dataislands?, Joshua Allen | Thread | Re: [xsl] ?Dataislands?, Robert Koberg |
Re: [xsl] cocoon 2 and saxon, bernwardhanssen | Date | Specifying namespaces with prefixes, Jeni Tennison |
Month |