Subject: RE: [xsl] PARAMS and VARIABLES in XSL From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Tue, 30 Jan 2007 20:02:23 -0000 |
Looks like <xsl:template match="clause"> <xsl:apply-templates select="word"/> </xsl:template> <xsl:template match="word"> <word soundtime="preceding-sibling::sound[1]/@time"/> <xsl:value-of select="."/> </ </ Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: mark bordelon [mailto:markcbordelon@xxxxxxxxx] > Sent: 30 January 2007 19:42 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] PARAMS and VARIABLES in XSL > > I need help with the following problem. > > This is the XML is wish to transform: > > <clause> > <sound time="1.2"> > <word>the</word> > <word>quick</word> > <sound time="2.2"> > <word>fox</word> > <sound time="2.8"> > <word>jumped</word> > </clause> > <clause> > </clause> > > I need to transform it into the following xml, where the > sound tags time attritubes are soundtime attributes of the > following word tags: > > <clause> > <word soundtime="1.2">the</word> > <word soundtime="1.2">quick</word> > <word soundtime="2.2">fox</word> > <word soundtime="2.8">jumped</word> > </clause> > <clause> > </clause> > > Note that the soundtime attribute should not change if there > was no intervening new sound tag. > > I have tried all sorts of solutions using axes, > preceding-sibling, but these did not work, since the <word> > and <sound> are not true siblings to the processor, even > though they are on the same level of the hierarchy. > > The solution I would like to work with is the following, > using params to accumulate the soundtime variable. However, > even with all the research I have done, I cannot find a > solution that the processor does not error on. Can anyone help? > <?xml version="1.0" encoding="UTF-8"?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > > <xsl:template match="//clause/*"> <xsl:param name="soundtime" > /> <xsl:if test="local-name() = 'sound'"> <xsl:param > name="soundtime" select="@time" /> </xsl:if> <xsl:if > test="local-name() = 'word'"> <word sound = "{$soundtime}" > > <xsl:value-of select="." /> </word> </xsl:if> </xsl:template> > </xsl:stylesheet> > > > > > ______________________________________________________________ > ______________________ > Cheap talk? > Check out Yahoo! Messenger's low PC-to-Phone call rates. > http://voice.yahoo.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] PARAMS and VARIABLES in XSL, mark bordelon | Thread | RE: [xsl] PARAMS and VARIABLES in X, mark bordelon |
RE: [xsl] Duplicate Nodes in XSL an, Punnoose, Roshan | Date | Re: [xsl] PARAMS and VARIABLES in X, Abel Braaksma |
Month |