Уважаемый psfdek!
Сдаётся мне, что вы не знаете элементарных основ xslt. И наличие стандартного шаблона тут ни при чем. Ладно, вводный курс. (полный курс можете пройти отдельно - в ближайшее время будет новый набор)
Итак, макрос sitemap (
http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/struktura_i_kontent/content_sitemap/#xslt-templating) возвращает xml документ в таком виде
<udata module="content" method="sitemap" generation-time="0.018748">
<items>
<item id="1" link="/" name="Добро пожаловать" xlink:href="upage://1"/>
<item id="2" link="/talks/" name="Форум" xlink:href="upage://2"/>
<item id="12" link="/vse_novosti/" name="Все новости" xlink:href="upage://12">
<items>
<item id="13" link="/vse_novosti/politicheskie_novosti/" name="Политические новости" xlink:href="upage://13"/>
<item id="19" link="/vse_novosti/novosti_ekonomiki/" name="Новости экономики" xlink:href="upage://19"/>
</items>
</item>
<item id="26" link="/contacts/" name="Обратная связь" xlink:href="upage://26"/>
<item id="27" link="/umicms/" name="FAQ" xlink:href="upage://27"/>
<item id="40" link="/downloads/" name="Скачать" xlink:href="upage://40">
<items>
<item id="41" link="/downloads/php_manual/" name="PHP Manual" xlink:href="upage://41"/>
</items>
</item>
<item id="42" link="/obychnaya_stranica/" name="Обычная страница" xlink:href="upage://42"/>
<item id="43" link="/market/" name="Каталог товаров" xlink:href="upage://43"/>
</items>
</udata>
Здесь представлена карта сайта в виде вложенного в item тег items тега. А внутри items лежат другие item - дочерние к верхнему узлу. Ну и верхний items тоже стоит не забыть.
Задача разработчика xslt-шаблона - расписать обработку (и вывод, что фактически является синонимом) абсолютно всех возможные варианты тегов.
Как видно из документа, тегов тут всего 3: udata, item, items.
Как пишу обычно я:
Вызываю карту сайта я обычно так:
<xsl:apply-templates select="document('udata://content/sitemap/notemplate/2')/udata" mode="sitema_sitemap_sitemap" />
Название мода можно выбрать любым - это не важно. Главное чтобы было везде одинаковым.
Обработка udata выглядит так
<xsl:template match="udata" mode="sitema_sitemap_sitemap">
<xsl:apply-templates select="items" mode="sitema_sitemap_sitemap" />
</xsl:template>
Обработка items выглядит так
<xsl:template match="items" mode="sitema_sitemap_sitemap" />
<xsl:template match="items[count(item) > 0]" mode="sitema_sitemap_sitemap">
<ul>
<xsl:apply-templates select="item" mode="sitema_sitemap_sitemap" />
</ul>
</xsl:template>
Обработка item выглядит так
<xsl:template match="item" mode="sitema_sitemap_sitemap">
<li>
<xsl:value-of select="@name" />
<!-- ВАЖНО !!! -->
<xsl:apply-templates select="items" mode="sitema_sitemap_sitemap" />
<!-- ИМЕННО ТАК ДЕЛАЕТСЯ ВЛОЖЕННОСТЬ СПИСКОВ - ВЫ !!! ОБРАБАТЫВАЕТЕ !!! ИХ -->
</li>
</xsl:template>
Обратите внимание на места, где я обращаюсь к шаблонам, отвечающим за вызов внутреннего содержимого.
А еще обратите внимание на пустой шаблон, который используются в случае, если не срабатывает условие непустого шаблона.