Hi,
ich wollte alle Einträge einer XML Datei ausgeben(in der Reihenfolge in der sie auch in der XML Datei stehen).
-Ich dachte es geht so:<xsl:for-each select="."> // alle Einträge
xsl:choose // Jetzt wollte ich die verschiedenen Tags
// identifizieren (damit ich jeden Tag
//anders Formatieren kann)
Du kennst xsl:template und xsl:apply-templates?
xsl:for-each ist fast immer durch templates zu ersetzen - und in diesem Fall garantiert.
(wann immer möglich benutze ich xsl:apply-templates/xsl:template anstelle von xsl:for-each - dadurch habe ich zwar viele, aber oft sehr kleine, gut überschaubare templates)
<xsl:when test="test">
im test-Attribut muß eine Bedingung stehen. "test" ist keine Bedingung, sondern ein String - der dürfte immer als wahr ausgewertet werden, also wird immer nur dieser Zweig erreicht...
Leider Funktionier es so nicht. Ich kriege immer nur den ersten Eintrag(also test="test")! Wenn ich test="form" als erstes in die Choose Anweisung schreibe, bekomme ich NUR test="form". Ich dachte <xsl:for-each select="."> durchläuft alle Einträge?
Beschäftige Dich mit der Funktionsweise von xsl:template (insbes. mit dem match-Attribut) sowie mit der Arbeitsweise des xsl:apply-templates.
cu,
Andreas
Der Optimist: Das Glas ist halbvoll. - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/