๐Ÿš€ go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.xml
Article #9649

Poczatkujacy w XSLT

#9649
From: Adam
Date: Fri, 25 Jan 2008 13:56
84 lines
3714 bytes
Witam.

To moje poczatki z XSLT i napotkalem na problem. Chetnie poznalbym rozwiazanie
mojego problemu a oto on. Mam taki zrodlowy plik XML definiujacy strukture menu:

<menu>
        <item name="0">
                <label>Item 0</label>
        </item>
        <item name="1">
                <label>Item 1</label>
                <item name="1">
                        <label>Subitem 1</label>
                </item>
                <item name="2">
                        <label>Subitem 2</label>
                        <item name="1">
                                <label>Subsubitem 1</label>
                        </item>
                        <item name="2">
                                <label>Subsubitem 2</label>
                        </item>
                </item>
                <item name="3">
                        <label>Subitem 3</label>
                </item>
                <item name="4">
                        <label>Subitem 4</label>
                </item>
        </item>
        <item name="2">
                <label>Item 2</label>
                <item name="1">
                        <label>Subitem 1</label>
                </item>
                <item name="2">
                    <label>Subitem 2</label>
                </item>
                <item name="3">
                    <label>Subitem 3</label>
                </item>
        </item>
        <item name="3">
                <label>Item 3</label>
        </item>
</menu>

Probuje utworzyc XSLT ktory z tego XML wygeneruje nastepujacy kod HTML (XSLT
otrzymuje na wejsciu parameter path okreslajacy sciezke do wybranego elementu).
Czyli jesli input path jest rowne 1.2.1 (okreslone przez parametry @name
kolejnych elementow <item>) to HTML bedzie nastepujacy

<div id="item">
        <div>Item 0</div>
        <div id="on_path">Item 1</div>
        <div id="indentedlevel">
                <div>Subitem 1</div>
                <div id="on_path">Subitem 2</div>
        </div>
        <div id="secondindentedlevel">
                <div id="selected">Subsubitem 1</div>
                <div>Subsubitem 2</div>
        </div>
        <div id="indentedlevel">
                <div>Subitem 3</div>
                <div>Subitem 4</div>
        </div>
        <div>Item 2</div>
        <div>Item 3</div>
</menu>

Napisalem XSL ktory tworzy podany HTML ale przy wchodzeniu w trzeci poziom
(secondindentedlevel) nie zamyka poziomu drugiego. Problem z tym jest taki, ze
przy wejsciu w trzeci poziom <div id="secondindentedlevel"> trzeba najpierw
zamknac poziom drugi (indentedlevel) tagiem </div>, a po wyjsciu z niego
ponownie go otworzyc. Bede wdzieczny za wszelkie sugestie.

Pozdrawiam
Adam



-- 
Wysล‚ano z serwisu OnetNiusy: http://niusy.onet.pl
Technical Details
Message-ID: <1246.00000092.4799eaa0@newsgate.onet.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!news.onet.pl!newsgate.onet.pl!niusy.onet.pl

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!news.onet.pl!newsgate.onet.pl!niusy.onet.pl
From: "Adam" <adam_laszczWYTNIJTO@op.pl>
Newsgroups: pl.comp.xml
Subject: Poczatkujacy w XSLT
Date: 25 Jan 2008 14:56:48 +0100
Organization: Onet.pl SA
Lines: 84
Message-ID: <1246.00000092.4799eaa0@newsgate.onet.pl>
NNTP-Posting-Host: newsgate.onet.pl
Mime-Version: 1.0
X-Trace: newsgate.test.onet.pl 1201269408 12784 213.180.130.18 (25 Jan 2008 13:56:48 GMT)
X-Complaints-To: abuse@onet.pl
NNTP-Posting-Date: 25 Jan 2008 13:56:48 GMT
X-Mailer: http://niusy.onet.pl
X-Forwarded-For: 193.3.225.212, 10.14.14.122, 192.168.243.48
X-User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;    rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit