Subject: RE: [xsl] XML to XML From: m.vanrootseler@xxxxxxxxx Date: Fri, 22 Jun 2001 13:07:05 +0200 |
Thanks Rob, this is what I needed! You've just saved me a lot of work, so I owe you a pint :-) Mick -----Oorspronkelijk bericht----- Van: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]Namens Rob Lugt Verzonden: vrijdag 22 juni 2001 12:27 Aan: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Onderwerp: Re: [xsl] XML to XML > I want to convert the following XML: > > <line>One two. Testing.</line> > > into: > > <line><word>One</word> <word>two</word>. <word>Testing</word>.</line> > > Problem number two. I want to add an atribute to the <word> tag which gives > the position of the word in the line: <word wordID=" ">. > I think the easiest way to deal with this is to group all the characters that you don't want a word to contain into a single character using translate(). The result of this can be used for your tokenizing, but you still use the original text when outputing the bits between the tokens. It's a bit long-winded and I expect others could improve it, but this template should do the trick:- <xsl:template match="line"> <line> <xsl:call-template name="test"/> </line> </xsl:template> <xsl:template name="test"> <xsl:param name="text" select="."/> <xsl:param name="count" select="1"/> <xsl:variable name="x" select="translate($text, '.,', ' ')"/> <xsl:choose> <xsl:when test="contains($x, ' ')"> <xsl:variable name="word" select="substring-before($x, ' ')"/> <xsl:variable name="wordlen" select="string-length($word)"/> <xsl:if test="$wordlen"> <word wordID="{$count}"><xsl:value-of select="$word"/></word> </xsl:if> <xsl:value-of select="substring($text, $wordlen+1, 1)"/> <xsl:call-template name="test"> <xsl:with-param name="text" select="substring($text, $wordlen+2)"/> <xsl:with-param name="count" select="$count+boolean($wordlen)"/> </xsl:call-template> </xsl:when> <xsl:when test="$text"> <word wordID="{$count}"> <xsl:value-of select="$text"/> </word> </xsl:when> </xsl:choose> </xsl:template> Hope this helps! ~Rob -- Rob Lugt ElCel Technology http://www.elcel.com/ 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] XML to XML, Rob Lugt | Thread | [xsl] creating mutiple columns, Michael Zehrer |
[xsl] Re: HOWTO : Lookup tables, Dimitre Novatchev | Date | RE: [xsl] multiple test?, Wendell Piez |
Month |