Re[2]: Бесконечное дерево
От: Ed Sin  
Дата: 01.08.02 09:49
Оценка:
Здравствуйте Koenig inhabitant, Вы писали:

KI>Здравствуйте Ed Sin, Вы писали:


ES>>Можно ли как-то с помощью xsl выводить дерево, записанное в xml, которое может быть сколь угодно большим. Как организовать обход xml файла? И как тогда именовать xml теги?

KI>XML:
KI>
KI><?xml version="1.0" encoding="utf-8" ?>
KI><?xml-stylesheet type="text/xsl" href="t.xsl"?>
KI><root>
KI><group id="0">
KI>        <group id="1">
KI>                <group id="1.1">
KI>                        <user id="i1.1-1">i1.1-1</user>
KI>                </group>
KI>                <group id="1.2"></group>
KI>                <group id="1.3">
KI>                        <user id="i1.3-1">i1.3-1</user>
KI>                        <user id="i1.3-2">i1.3-2</user>
KI>                        <group id="1.3.1">
KI>                                <user id="i1.3.1-1">i1.3.1-1</user>
KI>                        </group>
KI>                </group>
KI>                <user id="i1-1">i1-1</user>
KI>        </group>
KI>        <group id="2"></group>
KI>        <group id="3">
KI>                <group id="3.1">
KI>                        <user id="i3.1-1">i3.1-1</user>
KI>                </group>
KI>        </group>
KI></group>
KI></root>
KI>


KI>XSL:

KI>
KI><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
KI>        <xsl:output method="html"/>
KI>        <xsl:template match="/">
KI>                <html>
KI>                        <body>
KI>                                List of groups:
KI>                                <xsl:apply-templates select="/root/group"/>
KI>                                List of items:
KI>                                <ul>
KI>                                <xsl:for-each select="//*/user">
KI>                                        <xsl:sort data-type="text"/>
KI>                                        <xsl:call-template name="list"/>
KI>                                </xsl:for-each>
KI>                                </ul>
KI>                        </body>
KI>                </html>
KI>        </xsl:template>

KI>        <xsl:template match="group">
KI>                <ul>
KI>                        <li>
KI>                        <xsl:value-of select="name()"/>-<xsl:value-of select="@id"/>
KI>                        <xsl:for-each select="./group">
KI>                                <xsl:apply-templates select="."/>
KI>                                <xsl:for-each select="./user">
KI>                                        <ul>
KI>                                        <xsl:apply-templates select="."/></ul>
KI>                                </xsl:for-each>
KI>                        </xsl:for-each>
KI>                        </li>
KI>                </ul>
KI>        </xsl:template>

KI>        <xsl:template match="user">
KI>                <li><b>(
KI>                <xsl:value-of select="name()"/>-<xsl:value-of select="@id"/>
KI>                )</b></li>
KI>        </xsl:template>

KI>        <xsl:template name="list">
KI>                <li><xsl:value-of select="@id"/></li>
KI>        </xsl:template>
KI></xsl:stylesheet>
KI>


KI>Про это спрашивал? Если нет, то уточни вопрос.

Да, я посмотрел — это то, что было нужно. Спасибо. Но есть одна проблема. Надо было уточнить это с самого начала. Дело в том, что мне нужно что это дерево строилось в пространстве имен /www.w3.org/TR/WD-xsl под эксплорер 5 что бы оно корректно отображалось у всех пользователей (дерево на сервере).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.