XML & XSL via PHP ausgeben ?

bossi

Erfahrenes Mitglied
Hallo,
ich habe 2 Dateien aus SelfHTML:
linktext.xml
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE linktext SYSTEM "linktext.dtd">
<?xml-stylesheet type="text/xsl" href="linktext.xsl" ?>
<linktext>
Unter der Adresse <link>http://www.w3.org/Style/XSL/</link> finden Interessierte
die Einstiegsseite des W3-Konsortiums zu XSL.
</linktext>

linktext.xsl
Code:
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
 <html><head></head><body bgcolor="#FFFFFF" text="#000000" link="#FF0000" vlink="#AA0000" alink="#000000" style="font-family:Arial; font-size:13px;">
  <xsl:apply-templates />
 </body></html>
</xsl:template>

<xsl:template match="link">
 <a><xsl:attribute name="href"><xsl:value-of select="." /></xsl:attribute>
 <xsl:value-of select="." /></a>
</xsl:template>

</xsl:stylesheet>

Um XML mit PHP auszugeben habe ich folgendes gefunden:
PHP:
<?php
if (file_exists('artikel.xml')) {
 $xml = simplexml_load_file('artikel.xml');
echo $xml->linktext[0];
} else {
 exit('Konnte Datei nicht laden.');
}
?>
Frage: Kann man auch alles inkl. der Style von der linktext.xsl ausgeben lassen :confused:
So als wen man die linktext.xml aufruft :confused:
 
PHP:
<?php
$xml = new DomDocument; // from /ext/dom
$xml->load('linktext.xml');

$xsl = new DomDocument;
$xsl->load('linktext.xsl');

/* Configure the transformer */
$proc = new xsltprocessor;
$proc->importStyleSheet($xsl); // attach the xsl rules
echo $proc->transformToXML($xml); // actual transformation
?>
Habe ich ein Fehler:
Fatal error: Class 'xsltprocessor' not found in /var/www/web371/html/xml/index.php on line 9
Auf mein Webspace läuft: PHP Version 5.2.0-8+etch13
 
Hi, schau mal mittels
PHP:
print_r(get_loaded_extensions());
nach, ob da irgendwo "xsl" drin auftaucht, wenn nicht, dann ist bei deinem Host der XSLTProcessor nicht verfügbar, da er nicht bei der Installation von PHP aktiviert wurde und nicht als Extension geladen ist.
 
Jo habe mein Provider schon angeschrieben, es ist nicht Aktiv.
Frage mich ob die Aktivierung von XSL den Server viel mehr belasten würde ?
solche Sonderwünsche werden nur auf limitierten Servern installiert.
Gibt es vielleicht eine Alternative als class oder so :)
 
Zuletzt bearbeitet:
Mhm, also ehrlich gesagt fällt mir keine in PHP geschriebene Klasse ein, die sowas kann. Ausserdem würde die den Server erheblich mehr belasten, als die (sehr schnelle) XSL Extension von PHP. Komische Sache mit deinem Provider, denn DOM scheint ja aktiv zu sein und belastet den Server erheblich mehr...
 
Zurück