darstellung funzt nicht
christian
- xsl
0 Thomas J.S.0 Thomas J.S.0 christian0 christian0 Utz0 Thomas J.S.
0 MudGuard
hi
parse gerade ein xml dokument mit java... die daten kommen aus einer Datenbank und werden als xml-baum generiert. Diesen schicke ich mit einen Transformer(der mit einer xsl datei verbunden ist)in eine xmlDatei. funktioniert auch wunderbar. Nur wenn ich es im Browser öffne sehe ich folgenes:
<?xml version="1.0" encoding="UTF-8" ?>
USW... das heißt das er mir mein html als xml baum darstellt?!
warum?
die xsl teplates funktionieren ja, sie haben mir die Uebungen und befehle aus der Datenbank geholt und an der richtigen Stelle( wie in der xsl datei bechrieben) eingefügt.
bin in xsl noch nit so fit. Vielleicht habe ich ja noch was entscheidenes übersehen nur weiß ich nicht was!
grüße christian
Hallo,
parse gerade ein xml dokument mit java... die daten kommen aus einer Datenbank und werden als xml-baum generiert. Diesen schicke ich mit einen Transformer(der mit einer xsl datei verbunden ist)in eine xmlDatei. funktioniert auch wunderbar. Nur wenn ich es im Browser öffne sehe ich folgenes:
Was ist das Ergebnis bei dir? So wie du es hier schreibst ist es eine XML-Datei.
USW... das heißt das er mir mein html als xml baum darstellt?!
warum?
Mir scheint, dass dir eher beim hin und her transformieren was schief geht:
<?xml version="1.0" encoding="UTF-8" ?>
- <html xmlns:fo="http://www.w3.org/1999/XSL/Format">
Als was wird deine Datei ausgeliefert (MIME-Type)?
Mal so aus Neugier: was macht ein xmlns:fo="http://www.w3.org/1999/XSL/Format" in einer HTML-Datei?
bin in xsl noch nit so fit. Vielleicht habe ich ja noch was entscheidenes übersehen nur weiß ich nicht was!
Das kann dir keiner sagen, so ohne Code!
Grüße
Thomas
hi,
- und den Egbenisbaum schreibst du in eine XML-Datei ???
hmm... ich meinte natürlich "Ergebnisbaum"
Thomas
hi,
Mal so aus Neugier: was macht ein xmlns:fo="http://www.w3.org/1999/XSL/Format" in einer HTML-Datei?
der hat das Transformator-Object (java) hinein geschrieben!
dachte nur vielleicht kennt jemand diese ausgabe und weiß was vergessen wurde, aber wenn du code willst...:
hier die xsl datei:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo= "im" "http://www.w3.org/1999/XSL/Format"
<xsl:output method="xml"/>
<xsl:template match="eintrag">
<html>
<head><title>Wissensdatenbank</title></head>
<body>
<H2>Uebungen</H2>
<xsl:apply-templates select="uebung"/>
<H2>Befehle</H2>
<xsl:apply-templates select="befehl"/>
</body>
</html>
</xsl:template>
<xsl:template match="befehl">
Kategorie: <xsl:value-of select="@kategorie"/><BR/>
titel: <xsl:value-of select="titel"/>
beschreibung: <xsl:value-of select="beschreibung"/>
syntax: <xsl:value-of select="syntax"/>
beispiel: <xsl:value-of select="beispiel"/>
ausgabe: <xsl:value-of select="ausgabe"/>
</xsl:template>
<xsl:template match="uebung">
Kategorie: <xsl:value-of select="@kategorie"/><BR/>
titel: <xsl:value-of select="titel"/>
aufgabe: <xsl:value-of select="aufgabe"/>
loesung: <xsl:value-of select="loesung"/>
</xsl:template>
</xsl:stylesheet>
--------ende xsl datei--------
hier die xml datei(eigentlich nur als Obejctbaum in java, aber ich habe ihn hier mal in einer datei ausgegeben:
<?xml version="1.0" encoding="UTF-8" ?>
</eintrag>
</wissensdb>
--------- ende xml datei gekürzt-------
hier der Java Transformator:
TransformerFactory tFactory = TransformerFactory.newInstance( );
Transformer transformer = tFactory.newTransformer(new StreamSource(this.getClass().getResource(
"wissendb.xsl").openStream() ));
transformer.setOutputProperty( OutputKeys.METHOD, "xml" );
transformer.setOutputProperty( OutputKeys.INDENT, "yes" );
transformer.setOutputProperty(
"{http://xml.apache.org/xslt}indent-amount", "2" );
DOMSource source = new DOMSource( document );
StreamResult result = new StreamResult( f );
transformer.transform( source, result );
---------ende java-transformator----------
ich hab auch schon sämtliche properties aus und ein kommentiert aber immer die selbe ausgabe
grüße christian
hi,
Mal so aus Neugier: was macht ein xmlns:fo="http://www.w3.org/1999/XSL/Format" in einer HTML-Datei?
der hat das Transformator-Object (java) hinein geschrieben!
dachte nur vielleicht kennt jemand diese ausgabe und weiß was vergessen wurde, aber wenn du code willst...:
hier die xsl datei:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo= "im" "http://www.w3.org/1999/XSL/Format"
das "im" muss weg das gehört nicht dazu...
grüße christian
Hi Christian,
Dein Problem scheint ja zu sein, dass bei Dir XML ausgegeben wird und nicht HTML. Da hätt ich einen Hauptverdächtigen anzubieten:
<xsl:output method="xml"/>
Einfach mal ersatzlos streichen und schauen ob's was bringt.
Grüße,
Utz
Hi Christian,
<xsl:output method="xml"/>
Einfach mal ersatzlos streichen und schauen ob's was bringt.
leidee genau wie vorher
Grüße,
christian
Hallo,
ich habe mal versucht
-------------xml-------------
<?xml version="1.0" encoding="UTF-8" ?>
<wissensdb>
<eintrag>
<uebung id="1" kategorie="java">
<titel>das ist der titel</titel>
<aufgabe>aufgabe:</aufgabe>
<loesung>loesung:</loesung>
</uebung>
<uebung id="2" kategorie="linux">
<titel>das ist der titel2</titel>
<aufgabe>aufgabe2:</aufgabe>
<loesung>loesung2:</loesung>
</uebung>
</eintrag>
</wissensdb>
-----------------------------
------------------xsl ------------------
<?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" indent="yes"/>
<xsl:template match="/">
xsl:apply-templates/
</xsl:template>
<xsl:template match="eintrag">
<html>
<head><title>Wissensdatenbank</title></head>
<body>
<H2>Uebungen</H2>
<xsl:apply-templates select="uebung"/>
<H2>Befehle</H2>
<xsl:apply-templates select="befehl"/>
</body>
</html>
</xsl:template>
<xsl:template match="befehl">
Kategorie: <xsl:value-of select="@kategorie"/><BR/>
titel: <xsl:value-of select="titel"/>
beschreibung: <xsl:value-of select="beschreibung"/>
syntax: <xsl:value-of select="syntax"/>
beispiel: <xsl:value-of select="beispiel"/>
ausgabe: <xsl:value-of select="ausgabe"/>
</xsl:template>
<xsl:template match="uebung">
Kategorie: <xsl:value-of select="@kategorie"/><BR/>
titel: <xsl:value-of select="titel"/>
aufgabe: <xsl:value-of select="aufgabe"/>
loesung: <xsl:value-of select="loesung"/>
</xsl:template>
</xsl:stylesheet>
------------------------------------
--------html vom saxon ---------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Wissensdatenbank</title>
</head>
<body>
<H2>Uebungen</H2>
Kategorie: java<BR>
titel: das ist der titel
aufgabe: aufgabe:
loesung: loesung:
Kategorie: linux<BR>
titel: das ist der titel2
aufgabe: aufgabe2:
loesung: loesung2:
<H2>Befehle</H2>
</body>
</html>
-----------------------------------
hier der Java Transformator:
Java ist nicht meins.
transformer.setOutputProperty( OutputKeys.METHOD, "xml" );
transformer.setOutputProperty( OutputKeys.INDENT, "yes" );
mir scheint, dass du hier den Output als XML festlegst.
Sollte das da nicht "html" sein? (und nicht vergesen, <xsl:output method="html" indent="yes"/> im Stylesheet! )
Grüße
Thomas
Hi
parse gerade ein xml dokument mit java... die daten kommen aus einer Datenbank und werden als xml-baum generiert. Diesen schicke ich mit einen Transformer(der mit einer xsl datei verbunden ist)in eine xmlDatei. funktioniert auch wunderbar. Nur wenn ich es im Browser öffne sehe ich folgenes:
<?xml version="1.0" encoding="UTF-8" ?>
- <html xmlns:fo="http://www.w3.org/1999/XSL/Format">
- <head>
<title>Wissensdatenbank</title>
</head>- <body>
Welcher Mime-Type kommt beim Browser an?
Was sagt ein http-fähiger Browser dazu (z.B. Mozilla)?
Andreas
hi
hab den fehler gefunden... ich habe die mit java erstellte datei einfach in html umbenannt und schon ging es! Sie hieß vorher wissendb.xml nun: wissendb.html
grüße christian