Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z szablonem XSLT
miaka
post 13.01.2012, 16:52:20
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 20.07.2011

Ostrzeżenie: (0%)
-----


Witam, mam taki problem z formatowaniem plikow XML za pomocą XSLT. Otóz mam baze w xml gdzie mam zbior filmow i tam mam min gatunki. A w xslt chce zeby wyswietlal filmy ale z gatunku dramat. I cos poknocilam w pliku XSL na poczatku przy wybieraniu kategorii. Poprostu wyswietla sie niesformatowany tekst sam czyli, ze problem jest w strukturze. Prosze o pomoc bo nie wiem jak to poprawic.

plik xml:

  1. <bazafilmow>
  2. <film id="9">
  3. <tytul>Czarny Łabędź</tytul>
  4. <gatunki>
  5. <gatunek>Dramat</gatunek>
  6. <gatunek>Psychologiczny</gatunek>
  7. </gatunki>
  8. <obsada>
  9. <aktor>
  10. <imie>Natalie</imie>
  11. <nazwisko>Portman</nazwisko>
  12. <rola>Nina Sayers</rola>
  13. </aktor>
  14. <aktor>
  15. <imie>Mila</imie>
  16. <nazwisko>Kunis</nazwisko>
  17. <rola>Lily</rola>
  18. </aktor>
  19. <aktor>
  20. <imie>Vincent</imie>
  21. <nazwisko>Cassel</nazwisko>
  22. <rola>Thomas Leroy</rola>
  23. </aktor>
  24. </obsada>
  25. <rezyser>
  26. <imie>Darren</imie>
  27. <nazwisko>Aronofsky</nazwisko>
  28. </rezyser>
  29. <czas>108</czas>
  30. <jakiKraj>USA</jakiKraj>
  31. <dataProdukcji>2010-09-01</dataProdukcji>
  32. <cena>10 zł</cena>
  33. <opis>Nina (Natalie Portman) jest baleriną w jednym z najlepszych zepołów baletowych w Nowym Jorku. Panuje tam zimne wyrachowanie. Baletnice zrobią wszystko, by zepchnąć w dół dziewczynę, która tylko stanie o stopień wyżej niż one. Zbliża się kres kariery Beth i rozpoczyna się polowanie na jej miejsce w "Jeziorze Łabędzim". Główną rolą jest postać Odett, królowej łabędzi. Rola ta jest trudna, bo balerina będzie musiała grać zarówno słodkiego "Białego Łabędzia", jak i mrocznego "Czarnego Łabędzia". ... Oczywiście Nina pretenduje do roli tego pierwszego, ale czy będzie umiała pokazać pazurki i zostać "Czarnym Łabędziem"? Czas płynie, a Nina desperacko próbuje odnaleźć swoją ciemną stronę.</opis>
  34. <dataDodania>2011-10-01</dataDodania>
  35. <egzemplarze>
  36. <egzemplarz id="116" nosnik="dvd" wypozyczono="true" stan="OK"></egzemplarz>
  37. <egzemplarz id="117" nosnik="dvd" wypozyczono="false" stan="OK"></egzemplarz>
  38. </egzemplarze>
  39. </film>
  40. <bazaFilmow>


plik xsl:

  1. <?xml version="1.0"?>
  2. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
  3.  
  4. <xsl:output method="html"/>
  5. <xsl:document href="index.html" method="html"/>
  6. <xsl:param name="x"/>
  7. <xsl:template match="/">
  8.  
  9. <html>
  10. <head>
  11. <style type="text/css">
  12. img { width: 160px; height: 230px; }
  13. </style>
  14. <title>
  15. </title>
  16. </head>
  17. <body>
  18. <xsl:apply-templates select="bazaFilmow" >
  19. <xsl:apply-templates select="film/gatunki[gatunek='Dramat']"/>
  20. </xsl:apply-templates>
  21. </body>
  22. </html>
  23. </xsl:template>
  24.  
  25. <xsl:template match="film">
  26. <table style="text-align:left; border: 2px solid black;">
  27. <tr>
  28. <td colspan="3" style="font-size:20px; border:1px; color:red"><xsl:value-of select="tytul" /></td><td></td>
  29. </tr>
  30. <tr>
  31. <td width="160px" rowspan="7">
  32. <xsl:call-template name="obrazek">
  33. <xsl:with-param name="source" select="@id"/>
  34. <xsl:with-param name="alttext" select="'obrazek'"/>
  35. </xsl:call-template>
  36. </td>
  37. <td width="300px">
  38. Gatunek:
  39. <xsl:call-template name="gat" />
  40. </td>
  41. <td rowspan="4">
  42. Obsada:
  43. <xsl:call-template name="akt" />
  44. </td>
  45. </tr>
  46. <tr>
  47. <td width="300px">
  48. reżyser: <xsl:value-of select="rezyser"/>
  49. </td>
  50. </tr>
  51. <tr>
  52. <td width="300px">
  53. czas: <xsl:value-of select="czas"/> min
  54. </td>
  55. </tr>
  56. <tr>
  57. <td width="300px">
  58. data: <xsl:value-of select="dataProdukcji"/>
  59. </td>
  60. </tr>
  61. <tr>
  62. <td width="300px">
  63. produkcja: <xsl:value-of select="jakiKraj"/>
  64. </td>
  65. <td rowspan="3" width="300px">
  66. egzemplarze:
  67. <xsl:call-template name="egz" />
  68. </td>
  69. </tr>
  70. <tr>
  71. <td width="300px">
  72. data dodania: <xsl:value-of select="dataDodania"/>
  73. </td>
  74. </tr>
  75. <tr>
  76. <td width="300px">
  77. cena: <xsl:value-of select="cena"/>
  78. </td>
  79. </tr>
  80. <tr>
  81. <td colspan="3">
  82. <xsl:value-of select="opis"/>
  83. </td>
  84. </tr>
  85. </table>
  86. </xsl:template>
  87.  
  88. <xsl:template name="gat">
  89. <xsl:for-each select="gatunki/gatunek">
  90. <xsl:value-of select="current()" />,
  91. </xsl:for-each>
  92. </xsl:template>
  93.  
  94. <xsl:template name="akt">
  95. <ul>
  96. <xsl:for-each select="obsada/aktor">
  97. <li>
  98. <xsl:value-of select="rola"/>: <xsl:value-of select="imie"/><xsl:text> </xsl:text><xsl:value-of select="nazwisko"/>
  99. </li>
  100. </xsl:for-each>
  101. </ul>
  102. </xsl:template>
  103.  
  104. <xsl:template name="egz">
  105. <xsl:for-each select="egzemplarze/egzemplarz">
  106. <li>
  107. numer: <xsl:value-of select="current()/@id" />,
  108. nośnik: <xsl:value-of select="current()/@nosnik" />,
  109. <xsl:choose>
  110. <xsl:when test="current()/@wypozyczono = 'false'">
  111. dostępny
  112. </xsl:when>
  113. <xsl:otherwise>
  114. wypożyczony
  115. </xsl:otherwise>
  116. </xsl:choose>
  117. </li>
  118. </xsl:for-each>
  119. </xsl:template>
  120.  
  121. <xsl:template name="obrazek">
  122. <xsl:param name="source" />
  123. <xsl:param name="alttext" />
  124. <img src="images/{$source}.jpg" style="padding: 5px; border:1px" alt="{$alttext}"/>
  125. </xsl:template>
  126.  
  127. </xsl:stylesheet>


Problem rozwiazany, mozna zamknac temat wink.gif

Ten post edytował miaka 13.01.2012, 16:20:11
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 13:09