Есть исходный плоский список:
<list>
<c>
<n>c1</n>
<id>1</id>
</c>
<c>
<n>c2</n>
<id>1/0/0</id>
</c>
<c>
<n>c3</n>
<id>1/0</id>
</c>
<c>
<n>c4</n>
<id>1.2.3.4</id>
</c>
<c>
<n>c5</n>
<id>1.2.3.4.5.6.8.9</id>
</c>
<c>
<n>c5</n>
<id>1.2.3.4.5.6.8</id>
</c>
<c>
<n>c6</n>
<id></id>
</c>
<c>
<n>c7</n>
<id></id>
</c>
</list>
Хочется превратить его при помощи xslt в иерархию:
<list>
<c>
<n>c6</n>
<id></id>
</c>
<c>
<n>c7</n>
<id></id>
</c>
<c>
<n>c1</n>
<id>1</id>
<c>
<n>c3</n>
<id>1/0</id>
<c>
<n>c2</n>
<id>1/0/0</id>
</c>
</c>
</c>
<c>
<n>c4</n>
<id>1.2.3.4</id>
<c>
<n>c5</n>
<id>1.2.3.4.5.6.8</id>
<c>
<n>c5</n>
<id>1.2.3.4.5.6.8.9</id>
</c>
</c>
</c>
</list>
Нужно найти все цепочки вхождений различных строк друг в друга, чтобы выстроить иерархию.
Ломаю голову уже несколько дней...