This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: ?Dataislands?
- From: "Robert Koberg" <rob at koberg dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Fri, 1 Mar 2002 04:02:10 -0800
- Subject: Re: [xsl] ?Dataislands?
- References: <A4E84C0DE2891541B51BC39A01B3C4D20BEB54@libra.swiftnet.tek>
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi, just picked up on this thread...
I like to "re-represent" the XML structure in the HTML with class
attributes, e.g.
<article>
<title>The tite</title>
<para>The para</para>
<section>
<title>The tite</title>
<para>The para</para>
</section>
</article>
Can look like:
<SPAN CLASS="article">
<DIV CLASS="title">The Title</DIV>
<DIV CLASS="para">The para</DIV>
<SPAN CLASS="section">
<DIV CLASS="title">The Title</DIV>
<DIV CLASS="para">The para</DIV>
</SPAN>
</SPAN>
This has two benefits:
1. You know the structure of the XML
2. You can use CSS to style a page very easily/nicely
----- Original Message -----
From: "Chris Bayes" <chris@bayes.co.uk>
To: <xsl-list@lists.mulberrytech.com>
Sent: Friday, March 01, 2002 1:27 AM
Subject: RE: [xsl] ?Dataislands?
> 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@lists.mulberrytech.com
> > [mailto:owner-xsl-list@lists.mulberrytech.com] On Behalf Of Rosa Cheng
> > Sent: 28 February 2002 22:25
> > To: 'xsl-list@lists.mulberrytech.com'
> > 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
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list