|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Counting or Modulus calculations in XSL
ath@xxxxxx wrote:
>
> Then I have to parse it with XSL into a two column table so that <info> wit
> odd-number position goes into the left column and the even number <info>
> into the right column, two <info>'s in each row.
> All suggestions welcome. I can only make it appear in one column, one <info
> in each row. Wouldn't be so tricky if the number of <info> didn't change.
Warren Hedley <w.hedley@xxxxxxxxxxxxxx> replied:
>
> The very first question in the FAQ! Come on, put some effort in.
> http://freespace.virgin.net/b.pawson/xsl/N961.html
That approach would work to build a table with a
fixed number of *rows* and the number of *columns*
depending on the number of items; to do it the other
way around (fixed number of columns, variable number
of rows), you can use call-template recursively:
template make-row:
parameter cells = count(child::ITEM); -- total #cells --
parameter cols = 2; -- desired #columns --
parameter start = 1; -- first cell in this row --
parameter end = $start + $cols; -- last cell in this row --
element "TR":
for-each child::ITEM[position() >= $start and position() < $end ]:
element "TD":
apply-templates;
end element;
end for-each;
end element;
if $end <= $cells:
call-template make-row
with-parameters start = $end, cols = $cols;
end if;
end template.
(Pardon the pseudosyntax; please add punctuation as needed
to make this valid XSL).
Another approach, if you're using SAXON, is to use saxon:group
with group-by="floor((position() - 1) div $cols)".
--Joe English
jenglish@xxxxxxxxxxxxx
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
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
|

Cart








