|
Subject: Re: [xsl] A function that tokenizes a string, wrapping each token in start-tag , end-tag pairs? From: "Costello, Roger L. costello@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Thu, 21 Apr 2016 12:52:12 -0000 |
You rock Martin!
Fantastic!
Okay, I changed the implementation as you suggested, see below. The new
implementation is much shorter and much clearer. Can it be improved even
further?
<!--
Create an element for each non-empty token in $line.
$line is tokenized using the sequence of symbols denoted
by $line-delimiter.
For the token at position i, name the element using the
string in headers[$i]
-->
<xsl:function name="f:line" as="element()*">
<xsl:param name="line" as="xs:string" />
<xsl:param name="delimiter" as="xs:integer+" />
<xsl:param name="headers" as="xs:string+" />
<xsl:for-each select="tokenize($line,
codepoints-to-string($delimiter))">
<xsl:if test=". ne ''">
<xsl:variable name="pos" select="position()" />
<xsl:element name="{$headers[$pos]}">
<xsl:sequence select="."/>
</xsl:element>
</xsl:if>
</xsl:for-each>
</xsl:function>
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] A function that tokenizes, Dimitre Novatchev dn | Thread | Re: [xsl] A function that tokenizes, Martin Honnen martin |
| Re: [xsl] A function that tokenizes, Martin Honnen martin | Date | Re: [xsl] A function that tokenizes, Martin Honnen martin |
| Month |