Я хотел бы знать, действительно ли вы пытаетесь сосчитать ячейки или, вернее, столбцы.Что бы вы посчитали правильным результатом для следующей таблицы?
<table>
<tr><td colspan="2"/><td/></tr>
<tr><td/><td colspan="2"/></tr>
</table>
Если вы просто подсчитываете ячейки, то ожидаете 2 - и это то, что дают оба предыдущих ответа.Однако таблица имеет три столбца, поэтому, если это то, что вам нужно (например, при преобразовании таблиц XHTML в CALS ), вам нужно немного подправить решение @Tim C: замените count (td) с sum (td / @ colspan) + count (td [not (@colspan)]) оба в элемент и в .
К сожалению, даже в этом случае расчет не может обеспечить правильное количество столбцов во всех случаях.Например, он получает 2 вместо 3, когда получает следующее:
<table>
<tr><td rowspan="2"/><td/></tr>
<tr><td/><td/></tr>
</table>
Я понятия не имею, как решить эту проблему.Я никогда не видел его в живых данных (стук по дереву).
Еще одна вещь.Моей кармы недостаточно для того, чтобы комментировать ответ @Tim C, но мне нужно написать это, чтобы не забыть: таблица стилей неверна в том смысле, что она сортирует количество клеток лексически (т. Е. Думает, что «120» <«19» <«5»)так что если у вас есть ряд с 5 ячейками и еще один с 10, вы получите максимум 5.Это легко исправить, добавив <em>data-type = "number" к тег.