Дерево в xml

matross

Новичок
Дерево в xml

В xml файле имеется сранится дерево неограниченой вложености. Пример:
<?xml version="1.0" encoding="windows-1251"?>
<root>
<catalog type="Главная">
<catalog type="Покаталог">
<catalog type="Подподкаталог">
<catalog type="Подподподкаталог">
<node>Подподподподкаталог</node>
</catalog>
</catalog>
</catalog>
<node>_Покаталог_</node>
</catalog>

<catalog type="Услуги юридическим лицам">
<catalog type="Открытие счетов">
<node>Перечень документов для открытия счета</node>
<node>Тарифы на расчетно-кассовое обслуживание</node>
</catalog>
</catalog>
</root>

====Внимание Вопрос====

Как для такого файла построить xsl??? Напоминаю, что дерево может быть совсем другой вложености. Нужна, так сказать универсальная xsl!

Кто что может предложить или посоветовать...

-~{}~ 16.11.04 16:48:

Спасибо за все! Проблема решена:

1) немного меняем структуру документа на:

<?xml version="1.0" encoding="windows-1251"?><root>
<catalog type="Главная">
<catalog type="Покаталог">
<catalog type="Подподкаталог">
<catalog type="Подподподкаталог">
<catalog type="Подподподподкаталог"/>
</catalog></catalog></catalog><catalog type="_Покаталог_"/>
</catalog>

<catalog type="Услуги юридическим лицам">
<catalog type="Открытие счетов">
<catalog type="Перечень документов для открытия счета"/>
<catalog type="Тарифы на расчетно-кассовое обслуживание"/>
</catalog></catalog>
</root>

2). xsl выглядит таким образом
<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet version = '1.0' xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="root">
<ul>
<xsl:apply-templates select="catalog" />
</ul>
</xsl:template>

<xsl:template match="catalog[catalog]">
<li>
<xsl:value-of select="@type"/>
</li>
<ul>
<xsl:apply-templates select="catalog"/>
</ul>
</xsl:template>

<xsl:template match="catalog">
<li><xsl:value-of select="@type"/></li>
</xsl:template>
</xsl:stylesheet>
 

slach

Новичок
как обычно достаточно было RTFM на тему xsl:template и всяких рекурсий в XSL

решение кстати вполне приличное =)
 
Сверху