[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Filtering on a tokenized list
Hi All, I have an attribute value that I want to convert to a sequence of decimals: @colwidth="0.439in 1.845in" I am using tokenize to drop the measurement units before I convert each member to decimal: tokenize($widths,'[^\.\d]') This works, except I get a empty string as the last item in the list. I saw in Michael's book that I can filter out the empty member with a predicate: tokenize($widths,'[^\.\d]')[.] I can't quite understand how the predicate [.] works. Is it like saying "non-empty strings"? Would it be equivalent to [not(.="")] Thank you in advance. -Rick By the way, here is my complete function. Any suggestions for improvements are appreciated. I am going from absolute widths: 0.439in 1.845in to a sequence of percentages: 19, 81 <!-- Function for converting absolute table column widths to proportional (percentage) widths. --> <xsl:function name="rq:getProportionalWidths"> <!-- widths parameter is @colwidth in the form of absolute dimensions. --> <xsl:param name="widths"/> <!-- Drop the measurement units and convert the strings to decimals. --> <xsl:variable name="tokens" select="tokenize($widths,'[^\.\d]')[.]"/> <xsl:variable name="decimals" select="for $i in $tokens return xs:decimal($i)"/> <!-- Divide each number by the total of all numbers and multiply by 100. --> <xsl:sequence select="for $i in $decimals return round($i div sum($decimals) * 100)"/> </xsl:function>
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|