У меня вопрос по XSL-преобразованию (XSLT-1).Я пробовал это с незапамятных времен, но у меня не получилось.
Я хочу построить стандартную навигацию по дереву веб-сайтов с XML и XSLT-1.Должны отображаться только элементы на пути к текущему элементу.если текущий элемент имеет дочерние элементы, должен быть открыт следующий узел.
Мой источник XML выглядит следующим образом:
<cat>
<item id="0" name="1">
<item id="1" name="1.1"></item>
<item id="2" name="1.2"></item>
<item id="3" name="1.3"></item>
<item id="4" name="1.4">
<item id="5" name="1.4.1">
<item id="6" name="1.4.1.1"></item>
<item id="7" name="1.4.1.2"></item>
<item id="8" name="1.4.1.3"></item>
</item>
<item id="9" name="1.4.2"></item>
<item id="10" name="1.4.3"></item>
</item>
<item id="11" name="1.5"></item>
<item id="12" name="1.6"></item>
</item>
<item id="13" name="2">
<item id="14" name="2.1"></item>
<item id="15" name="2.2"></item>
</item>
<item id="16" name="3"></item>
</cat>
Теперь я хочу вызвать страницу с $ pageid =7 отправить по URL, и он должен показать некоторые выходные данные, подобные этому:
<ul>
<li>1
<ul>
<li>1.1</li>
<li>1.2</li>
<li>1.3</li>
<li>1.4
<ul>
<li>1.4.1
<ul>
<li>1.4.1.1</li>
<li class="activeitem">1.4.1.2</li>
<li>1.4.1.3</li>
</ul>
</li>
<li>1.4.2</li>
<li>1.4.3</li>
</ul>
</li>
<li>1.5</li>
<li>1.6</li>
</ul>
</li>
<li>2</li>
<li>3</li>
</ul>
Если я вызову страницу с отправкой по URL $ pageid = 4, и он должен показать некоторые выходные данные, подобные этому:
<ul>
<li>1
<ul>
<li>1.1</li>
<li>1.2</li>
<li>1.3</li>
<li class="activeitem">1.4
<ul>
<li>1.4.1</li>
<li>1.4.2</li>
<li>1.4.3</li>
</ul>
</li>
<li>1.5</li>
<li>1.6</li>
</ul>
</li>
<li>2</li>
<li>3</li>
</ul>
Надеюсь, мой пример понятен для всех.
У меня уже есть карта сайта и работает навигационная система, но этот, похоже, очень сложный и опытный.
Я пыталсяизменить примеры из Дерево навигации с XML и XSLT - но это не сработало.Он показывает только путь к элементу, но не все остальные.
Может ли кто-нибудь, имеющий опыт работы с XSLT-1, помочь мне с этим?
Или, может быть, у кого-то уже есть рабочее решение для публикации здесь?
Это было бы очень любезно.Спасибо всем за внимание.