|
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 |