php5 | xsl nicht auf dem server
carsten schlichting
- php
Hallo
Auf dem server meines providers ist php5 , aber leider kein xsl bzw. xslt.
d.h.: ich kann nicht so einfach ein xsl-stylesheet auf ein xml anwenden.
Jetzt habe ich dort gefragt, ob sie dieses Modul installieren können.. aber leider geht dies nicht. Alternative müßte ich dann einen teureren account nehmen, d.h. einen eigenen server.
Die meinten dort, dass andere Programmierer xsl-stylesheets mit manuellen scripts anwenden würden...???
Jetzt wollte ich fragen, ob jemand so ein script kennt oder ob es noch eine andere methode als so ..[ $xsl = new XSLTProcessor(); ] gibt.???
..
Grüße
carsten
Hallo,
Die meinten dort, dass andere Programmierer xsl-stylesheets mit manuellen scripts anwenden würden...???
Das liest sich für mich wie folgt: "Andere Leute machen die gleiche Aufgabe wie sie XSLT bei Dir macht zu Fuß in PHP direkt."
Jetzt wollte ich fragen, ob jemand so ein script kennt oder ob es noch eine andere methode als so ..[ $xsl = new XSLTProcessor(); ] gibt.???
Naja, XSLT 1.0 ist vom Standard her relativ überschaubar, da müsste man mit brauchbarem Aufwand (~ 1 Mannmonat) einen extrem ineffizieten XSLT-1.0-Prozessor in PHP selbst schreiben können. Ich bezweifle aber, dass das jemand schon gmeacht hat - PHP bringt ja normalerweise eine XSL-Erweiterung mit.
Ansonsten: Kannst Du Programme auf dem Server mit PHP ausführen? In der Regel wird sowas gerne mal für ImageMagick verwendet (um 'convert' o.ä. aufzurufen) - Du könntest dann auch "xsltproc" aufrufen (sofern *das* auf dem Server installiert ist ;-)) und damit Deine XSLs manuell transformieren.
Wenn Dir das XSLT-Verarbeitungsengine Selbstprogrammieren zu viel Aufwand ist (mir wäre es das) und Du keine Programme ausführen kannst: Verzichte auf XSLT oder wechsele den Provider. Etwas anderes bleibt Dir vmtl. nicht übrig.
Viele Grüße,
Christian
Hallo
Die meinten dort, dass andere Programmierer xsl-stylesheets mit manuellen scripts anwenden würden...???
Das liest sich für mich wie folgt: "Andere Leute machen die gleiche Aufgabe wie sie XSLT bei Dir macht zu Fuß in PHP direkt."
der provider meinte aber, dass es richtig vorgefertigte Klasssen gibt, die ich aber leider bis jetzt noch icht gefunden habe.
Quasi ein direkt im php-script includierter xslt-prozessor anstatt ein dirkt in Php eingebundener.
Das problem ist glaube ich, dass nur sehr wenige dieses problem haben. Wenn man in google sucht, findet man immer nur die üblichen xslt vorgehensweisen.
carsten
Hallo noch einmal
Der Provider meinte auch: .. " was ist eigentlich so schlimm daran, wenn man das xml im browser zusammensetzen läßt? "
Im IE und im opera-browser funktioniert das zusammensetzen auch perfekt- nur leider im safari und im Firefox gibt es Probleme - das ist eigentlich der eigentliche Grund dafür, warum ich das xml eher auf dem server zusammensetzen möchte...
Hat jemand erfahrung darin, was im Firefox und im safari xml-mäßig nicht funktioniert?
carsten
Hi,
Der Provider meinte auch: .. " was ist eigentlich so schlimm daran, wenn man das xml im browser zusammensetzen läßt? "
Dann frag' ihn mal, was eigentlich so schlimm daran wäre, die entsprechenden PHP-Module auf in den Basispaketen zur Verfügung zu stellen :-)
Beides sind nun mal Anwendungsplatformen, die nicht immer beliebig ausgewechselt werden können.
Hat jemand erfahrung darin, was im Firefox und im safari xml-mäßig nicht funktioniert?
Die dürften vermutlich alles auch nur irgendwie relevante in der Hinsicht besser unterstützen, als der IE.
MfG ChrisB
Die dürften vermutlich alles auch nur irgendwie relevante in der Hinsicht besser unterstützen, als der IE.
leider funktioniert die Seite nur im ie und im opera aber leider nicht im firefox und im safari
carsten
dies ist der kopf des xsl:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE xsl:stylesheet SYSTEM "dtd\xsl-10-10_xhtml.dtd">
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output encoding="utf-8" indent="yes" media-type="text/html"
method="xml" doctype-public='-//W3C//DTD XHTML 1.0 Transitional//EN'
omit-xml-declaration="yes" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" ></xsl:output>
und dies ist der kkopf der xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root SYSTEM "dtd\plus-pol-xhtml.dtd">
<?xml-stylesheet type="text/xsl" href="plus_pol.xsl"?>
??
carsten
Hi
ok
hier das minimalBsp.:
XSL:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output encoding="utf-8" indent="yes" media-type="text/html"
method="xml" doctype-public='-//W3C//DTD XHTML 1.0 Transitional//EN'
omit-xml-declaration="no"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
version="1.0"></xsl:output>
<!--body_div--><xsl:template match="/root/HTML_body"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="imagetoolbar" content="no" />
<meta http-equiv="imagetoolbar" content="false" />
<meta http-equiv="cache-control" content="cache" />
<link rel="shortcut icon" type="image/x-icon" href="favicon16.ico" />
<link type="text/css" rel="stylesheet" href="stylesheets_immer.css" />
</head><html>
<body><div id="div_body" style="display:block;position:fixed;left:0px;top:0px;width: 100%;height: 100%;background-color:#565656;overflow:auto;">
</div></body>
</html>
</xsl:template>
</xsl:stylesheet>
XML:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="plus_pol.xsl"?>
<root>
<HTML_body >
</HTML_body></root>
CSS:
html, body
{
overflow:hidden;
margin: 0;
padding: 0;
background-color:#ffffff;
}
also wie gesagt..funktioniert im IE und im opera aber leider so nicht im Firefox und safari
großes ?
Danke schon einmal.
carsten
Hi
Hier lag der Fehler:
»» <xsl:output encoding="utf-8" indent="yes" media-type="text/html"
> method="xml" doctype-public='-//W3C//DTD XHTML 1.0 Transitional//EN'
> omit-xml-declaration="no"
> doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
> version="1.0">
> </xsl:output>
Und zwar hätte ich für method: html angeben müssen...
Jetzt funktionierts.
Weiß jemand warum das so wichtig ist ? Kann man eine normale XHTML Datei nicht auch in ein z.B. <?xml version="1.0" encoding="utf-8"?>
einschließen.?
carsten
Hallo,
Weiß jemand warum das so wichtig ist ? Kann man eine normale XHTML Datei nicht auch in ein z.B. <?xml version="1.0" encoding="utf-8"?>
einschließen.?
Die Browserinternen XSLt-Prozessoren arbeiten eben unterschiedlich. Bei method="xml" wird FF ein XML-Dokument annehmen und es als solchen behandeln, spricht, dort hat <html>,<body> etc. keine Bedeutung. Bei html dagegen ja.
Grüße
Thomas
Hallo,
Der Provider meinte auch: .. " was ist eigentlich so schlimm daran, wenn man das xml im browser zusammensetzen läßt? "
Nichts ist daran schlimm, außer dem Provider. Wechsle ihn, wenn er PHP5 tatsächlich ohne XSLT anbietet.
http://www.php.net/manual/en/book.xsl.php
Grüße
Thomas