Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [XSLT] for-each w if'ie wyświetla tylko jeden tag zamiast wszystkich
Forum PHP.pl > Forum > XML, AJAX
L_Devil
Minimalny kod do zreprodukowania błędu:

text.xml:
  1. <?xml version="1.0" standalone="yes"?>
  2. <?xml-stylesheet type="text/xsl" href="./test.xsl"?>
  3. <root>
  4. <paramlist>
  5. <param id="2">wartość</param>
  6. <param id="3">wartość2</param>
  7. <param id="6">wartość3</param>
  8. </paramlist>
  9. </root>


text.xsl:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  3. <xsl:output method="html" encoding="UTF-8" doctype-public="-//W3C//DTD HTML 4.01//EN" doctype-system="http://www.w3.org/TR/html4/strict.dtd" />
  4.  
  5. <xsl:template match="/">
  6. <xsl:apply-templates/>
  7. </xsl:template>
  8. <xsl:template match="root">
  9. <html>
  10. <head>
  11. <meta content="text/html; charset=UTF-8" http-equiv="content-type"/>
  12. <title>
  13. Example
  14. </title>
  15. </head>
  16. <body>
  17. <xsl:if test="paramlist/node()">
  18. <h1>Lista parametrów</h1><ul>
  19. <xsl:for-each select="paramlist">
  20. <li/>
  21. <xsl:value-of select="param"/>
  22. </xsl:for-each>
  23. </ul>
  24. </xsl:if>
  25. </body>
  26. </html>
  27. </xsl:template>
  28. </xsl:stylesheet>

Spodziewany rezultat:
  1. <meta content="text/html; charset=UTF-8" http-equiv="content-type"/>
  2. Example
  3. </head>
  4. <h1>Lista parametrów</h1><ul>
  5. <li/>wartość
  6. <li/>wartość2
  7. <li/>wartość3
  8. </ul>
  9. </body>
  10. </html>

Otrzymany rezultat:
  1. <meta content="text/html; charset=UTF-8" http-equiv="content-type"/>
  2. Example
  3. </head>
  4. <h1>Lista parametrów</h1><ul>
  5. <li/>wartość
  6. </ul>
  7. </body>
  8. </html>


Co robię nie tak?
styx
spróbuj
  1. <xsl:for-each select="param">
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.