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>
В 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>