XSLT mit IE 5.0 ;Warum wird XSLT Output in einer Zeile hintereinander geschriebe
Matthias
- xsl
Hallo zuammen,
ich bin dabei mit dem Internetexplorer ein XML File in ein andreres
zu transformieren. Leider wird mir der Output der Transformation
hintereinander in einer Zeile ausgegeben, und nicht wie gewünscht untereinander. Weiß jemand wie ich das ändern kann?
Bsp: XML Dokument
_____________________________________________________
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="when.xsl"?>
<personen>
<name maennlich="False">Nadja</name>
<name maennlich="True">Matthias</name>
<name maennlich="True">Florian</name>
<name maennlich="False">Christine</name>
</personen>
________________________________________________________
mein Stylesheet:
____________________________________________________________________
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
<xsl:output method = "text" />
<xsl:template match="personen">
<xsl:for-each select="name">
xsl:choose
<xsl:when test = "@maennlich='True'" >
xsl:text <Mann> </xsl:text>
<xsl:value-of select="."/>
xsl:text </Mann> </xsl:text>
</xsl:when>
xsl:otherwise
xsl:text <Frau> </xsl:text>
<xsl:value-of select="."/>
xsl:text </Frau> </xsl:text>
xsl:text
</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
_____________________________________________________________________
gewünschter Output:
<Frau> Nadja </Frau>
<Mann> Matthias </Mann>
<Mann> Florian </Mann>
<Frau> Christine </Frau>
Output des IE 5.0:
<Frau> Nadja </Frau> <Mann> Matthias </Mann> <Mann> Florian </Mann> <Frau> Christine </Frau>
Kann mir jamand sagen wie ich den Output untereinander ausgeben kann?
Oder wie man eine Art Newline nach jedem Element einfügen kann?
Im Voraus herzlichen Dank
Gruß
Matthias
Hi
Hat Dir schon mal jemand gesagt das man mit XSLT auch HTML Ausgaben erzeugen kann???????????
www.kaufdirmaleinbuch.de
Hallo Stephan,
Hat Dir schon mal jemand gesagt das man mit XSLT auch HTML Ausgaben erzeugen kann???????????
ja, aber vielleicht soll ja gar kein HTML, sondern eben ne umstrukturierte XML-Datei erzeugt werden.
www.kaufdirmaleinbuch.de
welches denn?
Ich denke, er hat doch normal und höflich gefragt. Das Thema XSLT ist nicht trivial und zudem zu interessant, als dass man die Leute gleich wegekeln sollte. Nix für ungut...
Matthias: was willste denn erreichen.
Einfach nur den IE5 zwingen, nen Zeilenumbruch zu machen, oder einen Zeilenumbruch ausgeben (was ja eigentlich unsinnig ist, weil es reine Formatierung der XML-Datei wäre)?
Eine dirty-Lösung ist einfach <br/> anhängen:
xsl:text Mann </br></xsl:text>.
Sauberer ist mit Namensräumen zu arbeiten, abre sag erstmal, was du genau erreichen willst.
Gruß
Franz
Hallo Stephan,
Hat Dir schon mal jemand gesagt das man mit XSLT auch HTML Ausgaben erzeugen kann???????????
ja, aber vielleicht soll ja gar kein HTML, sondern eben ne umstrukturierte XML-Datei erzeugt werden.
www.kaufdirmaleinbuch.de
welches denn?
Ich denke, er hat doch normal und höflich gefragt. Das Thema XSLT ist nicht trivial und zudem zu interessant, als dass man die Leute gleich wegekeln sollte. Nix für ungut...Matthias: was willste denn erreichen.
Einfach nur den IE5 zwingen, nen Zeilenumbruch zu machen, oder einen Zeilenumbruch ausgeben (was ja eigentlich unsinnig ist, weil es reine Formatierung der XML-Datei wäre)?Eine dirty-Lösung ist einfach <br/> anhängen:
xsl:text Mann </br></xsl:text>.
Sauberer ist mit Namensräumen zu arbeiten, abre sag erstmal, was du genau erreichen willst.Gruß
Franz
Du hast Recht Franz, ist ja eigentlich wurscht ob nun der erzeugte XSLT output formatiert ist, macht bei einer XML Datei keinen Sinn.
War mir nur nicht ganz so klar.
Danke für die Unterstützung!!
Gruß
Matthias
Kommentar:
Ich hatte eine neue Antwort geschrieben, weil ich die Frage erst falsch verstanden hatte. Ist wohl leider nicht angekommen, in diesem Sinne nicht so ernst nehmen.
Hallo Matthias!
ich bin dabei mit dem Internetexplorer ein XML File in ein andreres zu transformieren. Leider wird mir der Output der Transformation hintereinander in einer Zeile ausgegeben, und nicht wie gewünscht untereinander.
Falls es eine andere XML File sein sollte wie du unten es sagst, würde ich es so machen:
<xsl:output indent="yes" method="xml" />
<xsl:template match="personen">
<xsl:for-each select="name">
xsl:choose
<xsl:when test = "@maennlich='True'" >
<xsl:element name="Mann">
<xsl:value-of select="."/>
</xsl:element>
</xsl:when>
.....
Grüße
Thomas