![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Nabyłem książkę "XML. Leksykon kieszonkowy" wyd. Helion i chcąc zmienić troche jeden z przykładów do własnych potrzeb mam taki plik:
[xml:1:1f763170b3] ?xml version="1.0" standalone="yes" ?> <?xml-stylesheet type="text/xsl" href="test.xsl" ?> <dane> <plik> <ID>16</ID> <nazwa_org>123.m3u</nazwa_org> <userid>4</userid> <czas>1069200139</czas> <opis>Wprowadź opis pliku</opis> <rozmiar>3340</rozmiar> <rodzaj>0</rodzaj> </plik> <plik> <ID>13</ID> <nazwa_org>logo.jpg</nazwa_org> <userid>4</userid> <czas>1069199825</czas> <opis>To jest opis</opis> <rozmiar>26039</rozmiar> <rodzaj>1</rodzaj> </plik> <plik> <ID>12</ID> <nazwa_org>index.php</nazwa_org> <userid>4</userid> <czas>1069193326</czas> <opis>Wprowadź opis pliku</opis> <rozmiar>44</rozmiar> <rodzaj>1</rodzaj> </plik> ... ... ... </dane>[/xml:1:1f763170b3] i mam do tego taki oto plik XSL: [xml:1:1f763170b3]<?xml version="1.0" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Format"> <xsl:template match="dane"> <table border="1" width="800" cellpadding="5" cellspacing="0" bordercolordark="#FFFFFF" bordercolorlight="#C0C0C0"> <tr><th width="2%" bgcolor="#CCCCCC"></th><th width="30%" bgcolor="#CCCCCC">Nazwa pliku</th> <th bgcolor="#CCCCCC" width="15%">Wlasciciel</th><th bgcolor="#CCCCCC" width="15%">Data</th> <th width="15%" bgcolor="#CCCCCC">Rozmiar</th><th width="25%" bgcolor="#CCCCCC">Opis</th></tr> <xsl:for-each select="plik"> <tr> <td align="center" bgcolor="#F5F5F5"><img src="file.gif"/></td> <td align="left" bgcolor="#F5F5F5"><a href="index.php?c=down&id=4"> <xsl:process select="nazwa_org"/> </a></td> <td align="center" bgcolor="#F5F5F5">user</td> <td align="center" bgcolor="#F5F5F5">data</td> <td align="center" bgcolor="#F5F5F5"> <xsl:process select="rozmiar "/></td> <td align="center" bgcolor="#F5F5F5"><a href="jakislink">Pobierz</a></td> </tr> </xsl:for-each> </table> </xsl:template> </xsl:stylesheet>[/xml:1:1f763170b3] Jest to zrobione w oparciu o przykład z ww książki. Ale jak można się domyślic - nie działa: - wyświetla sie nagłowek tabeli i jeden pusty wiersz - nie wiem czy tam powinno być xsl:process czy xsl:value-of, bo żadne nie działa - u mnie na IE5 plik XML sie wyswietla, u innych nie... Co jest? I drugie pytanie: czy dopuszczalne jest umieszczanei w taki sposób HTMLa? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 18.03.2004 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
:idea: np. tak
test.xml [xml:1:83cba1864e] <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="test.xslt"?> <dane> <plik> <ID>16</ID> <nazwa_org>123.m3u</nazwa_org> <userid>4</userid> <czas>1069200139</czas> <opis>Wprowadź opis pliku</opis> <rozmiar>3340</rozmiar> <rodzaj>0</rodzaj> </plik> <plik> <ID>13</ID> <nazwa_org>logo.jpg</nazwa_org> <userid>4</userid> <czas>1069199825</czas> <opis>To jest opis</opis> <rozmiar>26039</rozmiar> <rodzaj>1</rodzaj> </plik> <plik> <ID>12</ID> <nazwa_org>index.php</nazwa_org> <userid>4</userid> <czas>1069193326</czas> <opis>Wprowadź opis pliku</opis> <rozmiar>44</rozmiar> <rodzaj>1</rodzaj> </plik> </dane> [/xml:1:83cba1864e] test.xslt [xml:1:83cba1864e] <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> <html> <head> <title>Dane XML</title> <style> @media all { table { font-family: Tahoma; font-size: 10pt; } } </style> </head> <body> <xsl:apply-templates select="dane"/> </body> </html> </xsl:template> <xsl:template match="dane"> <table border="1"> <tr> <th>ID</th> <th>nazwa_org</th> <th>userid</th> <th>czas</th> <th>opis</th> <th>rozmiar</th> <th>rodzaj</th> </tr> <xsl:for-each select="plik"> <tr> <td><xsl:value-of select="ID"/></td> <td><xsl:value-of select="nazwa_org"/></td> <td><xsl:value-of select="userid"/></td> <td><xsl:value-of select="czas"/></td> <td><xsl:value-of select="opis"/></td> <td><xsl:value-of select="rozmiar"/></td> <td><xsl:value-of select="rodzaj"/></td> </tr> </xsl:for-each> </table> </xsl:template> </xsl:stylesheet> [/xml:1:83cba1864e] xslt jest bardzo prosty i bardzo zawansowany. jak chcesz sie nim pobawic to polecam ci program Altova XML SPY 2004, to istny kombajn xml i takie transformacjie jak wyze zrobisz w 10m ,ale jak chcesz zeby to mialo rece i nogi to trzeba recznie. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 14:10 |