У меня есть некоторый иерархический XML, подобный этому:
<node text="a" value="1">
<node text="gga" value="5">
<node text="dh" value="9">
<node text="tyfg" value="4">
</node>
</node>
</node>
<node text="dfhgf" value="7">
<node text="fdsg" value="2">
</node>
</node>
</node>
Имена элементов одинаковы до конца («узел»), а глубина иерархии заранее неизвестна - в приведенном выше примере самый глубокий лист равен четырем, но он может быть глубина.
Что мне нужно сделать, так это взять этот XML и сплющить его в таблицу HTML. Количество столбцов в таблице должно равняться глубине самого глубокого элемента плюс столбец для атрибута значения каждого элемента. «Значение» должно появиться в крайнем правом столбце таблицы, поэтому выходные строки не могут иметь неровных краев. Должна быть строка для каждого узла независимо от того, на каком уровне он находится. Приведенный выше пример должен быть преобразован в:
<table>
<tr>
<td>a</td>
<td></td>
<td></td>
<td></td>
<td>1</td>
</tr>
<tr>
<td>a</td>
<td>gga</td>
<td></td>
<td></td>
<td>5</td>
</tr>
<tr>
<td>a</td>
<td>gga</td>
<td>dh</td>
<td></td>
<td>9</td>
</tr>
<tr>
<td>a</td>
<td>gga</td>
<td>dh</td>
<td>tyfg</td>
<td>4</td>
</tr>
<tr>
<td>a</td>
<td>dfhgf</td>
<td></td>
<td></td>
<td>7</td>
</tr>
<tr>
<td>a</td>
<td>dfhgf</td>
<td>fdsg</td>
<td></td>
<td>2</td>
</tr>
</table>
У кого-нибудь есть какой-нибудь умный XSLT, который может этого добиться?