Subject: [xsl] xslt 2.0 challenge From: "Andrew Welch" <AWelch@xxxxxxxxxxxxxxx> Date: Thu, 8 Apr 2004 12:29:37 +0100 |
Consider the following CALS table xml fragment, especially the <spanspec>: <table id="XBWQ24006" frame="TOPBOT"> <tgroup cols="4"> <colspec colname="C.HNL" colnum="1" colwidth="55mm" align="LEFT"/> <colspec colname="C.HNK" colnum="2" colwidth="32mm" align="CENTER"/> <colspec colname="C.HNJ" colnum="3" colwidth="33mm" align="CENTER"/> <colspec colname="C.HNI" colnum="4" colwidth="49mm" align="CENTER"/> <spanspec spanname="S.HOJ" namest="C.HNG" nameend="C.HNF" rowsep="1"/> <thead> <colspec colname="C.HNH" colnum="1" colwidth="55mm" align="LEFT"/> <colspec colname="C.HNG" colnum="2" colwidth="32mm" align="CENTER"/> <colspec colname="C.HNF" colnum="3" colwidth="33mm" align="CENTER"/> <colspec colname="C.HNE" colnum="4" colwidth="49mm" align="CENTER"/> <row> ... I need to calculate a width for the spanspec, and I'm hoping xslt 2.0 can help me out here. The steps involved are: 1. Find the corresponding start and end <colspecs> based on @namest and @nameend 2. Sum the @colwidth values for the <colspecs> between (and including) the columns found in step1 3. Divide that value by the sum of all colwidths for that group (siblings) and add on a % symbol My xslt 1.0 solution uses 3 temporary trees and a recursive template to remove the 'mm' and sum the correct <colspec>'s respectively. This still seems to run pretty fast, but I'm hoping to do away with it using the new features in 2.0. Is it possible to now do it in a single pass? (the width should work out to be 38.46%) Happy Easter... andrew
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Creating a CDATA tag in o, Elliotte Rusty Harol | Thread | Re: [xsl] xslt 2.0 challenge, David Carlisle |
[xsl] Creating a CDATA tag in outpu, Yashdeep Patil | Date | Re: [xsl] Can I change variable con, David Carlisle |
Month |