Я пытаюсь преобразовать содержимое индекса файла CHM (справки Microsoft HTML), который содержит информацию о структуре в очень произвольных списках HTML, с помощью XSL (см. Первый фрагмент кода - структура фактического файла индекса немного отличается, новажные части есть).Я проверил индекс нескольких файлов CHM, но структуры тегов ul , li никогда не бывают одинаковыми.Статично только одно: есть теги param , которые содержат информацию о главе, разделе, любых заголовках и ссылках на их HTML
. Из-за этого я пытаюсь опираться только наинформация о глубине определенных тегов param для преобразования списка в структуру XML (главным образом в структуру DocBook - см. второй фрагмент кода).
<ul>
<li>
<param attr="value"/>
<ul>
<li>
<param attr="value"/>
<ul>
<li>
<param attr="value"/>
</li>
</ul>
</li>
<li>
<param attr="value"/>
<ul>
<li>
<param attr="value"/>
</li>
<li>
<param attr="value"/>
</li>
</ul>
</li>
<li>
<param attr="value"/>
<ul>
<li>
<param attr="value"/>
</li>
</ul>
</li>
</ul>
</li>
</ul>
Мне удалось преобразовать некоторые индексы (аналогично предыдущему фрагменту кода) для структуры DocBook, но проблема в том, что моя таблица стилей XSL недостаточно универсальна.Если у кого-то есть идея преобразовать подобный список HTML в структуру DocBook, используя только информацию о глубине тегов param, пожалуйста, дайте мне несколько указателей.
Так, например, теги параметров с глубиной X будут преобразованы в элемент book , параметры с глубиной X + 1 будет преобразован в главу и так далее - конечно, всегда правильно вложенный.
<book>
<title>value1</title>
<chapter>
<title>value2</title>
<section>
<title>value3</title>
</section>
</chapter>
<chapter>
<title>value4</title>
<section>
<title>value5</title>
</section>
<section>
<title>value6</title>
</section>
</chapter>
<chapter>
<title>value7</title>
<section>
<title>value8</title>
</section>
</chapter>
</book>