С учетом следующего XML:
<items>
<item>
<name>A</name>
<address>0</address>
<start>0</start>
<size>2</size>
</item>
<item>
<name>B</name>
<address>1</address>
<start>2</start>
<size>4</size>
</item>
<item>
<name>C</name>
<address>2</address>
<start>5</start>
<size>2</size>
</item>
</items>
Я хочу сгенерировать следующий вывод, включая colspan's
+---------+------+------+------+------+------+------+------+------+
| Address | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
+---------+------+------+------+------+------+------+------+------+
| 0 | | | | | | | A |
+---------+------+------+------+------+------+------+------+------+
| 1 | | | B | | |
+---------+------+------+------+------+------+------+------+------+
| 2 | | C | | | | | |
+---------+------+------+------+------+------+------+------+------+
| 3 | | | | | | | | |
+---------+------+------+------+------+------+------+------+------+
Я думаю, что смог бы добиться этого с помощью изменяемой переменной xslt, но, увы, такого не существует.
Возможно ли это вообще? Как?
Edit:
Еще два требования:
- Также должно быть возможно существование двух предметов по одному адресу
- Пустые адреса могут существовать и должны быть сгенерированы в выходных данных
Например:
<items>
<item>
<name>D</name>
<address>0</address>
<start>0</start>
<size>2</size>
</item>
<item>
<name>E</name>
<address>0</address>
<start>3</start>
<size>4</size>
</item>
<item>
<name>F</name>
<address>7</address>
<start>5</start>
<size>2</size>
</item>
</items>
Должен дать:
+---------+------+------+------+------+------+------+------+------+
| Address | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
+---------+------+------+------+------+------+------+------+------+
| 0 | | E | | D |
+---------+------+------+------+------+------+------+------+------+
| 1 | | | | | | | | |
+---------+------+------+------+------+------+------+------+------+
| 2 | | | | | | | | |
+---------+------+------+------+------+------+------+------+------+
| 3 | | | | | | | | |
+---------+------+------+------+------+------+------+------+------+
| 4 | | | | | | | | |
+---------+------+------+------+------+------+------+------+------+
| 5 | | | | | | | | |
+---------+------+------+------+------+------+------+------+------+
| 6 | | | | | | | | |
+---------+------+------+------+------+------+------+------+------+
| 7 | | F | | | | | |
+---------+------+------+------+------+------+------+------+------+
Формат вывода (текст / html) на самом деле не имеет значения.