ThomasM: Hosting für serverseitige Transformation

Beitrag lesen

Hallo Manfred,

Nach phpinfo (5.2.17) sind XML, XMLwriter, XMLreader, XSL, EXSTL actice bzw. enabled. Die Voraussetzungen sind also da, denke ich.

Dann kann es doch direkt losgehen, hier ein kompaktes Beispiel:

test.xml:

<?xml version="1.0" encoding="UTF-8"?>  
<test abc="123">Hallo Welt!</test>

test.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="xml" encoding="UTF-8" indent="yes"  
   doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"  
   doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"  
   xmlns="http://www.w3.org/1999/xhtml"/>  
  
  <xsl:template match="/">  
  
    <html lang="de" xml:lang="de">  
      <head>  
        <title>Test</title>  
      </head>  
      <body>  
        <h1><xsl:value-of select="test"/></h1>  
        <p><xsl:value-of select="test/@abc"/></p>  
      </body>  
    </html>  
  
  </xsl:template>  
</xsl:stylesheet>

test.php:

<?php  
  
  $xmldocument=file_get_contents("test.xml");  
  $xsldocument=file_get_contents("test.xsl");  
  
  // Transformation:  
  if($xmldocument && $xsldocument)  
  {  
    $xmlobj=new DomDocument();  
    $xmlobj->loadxml($xmldocument);  
    $xslobj=new DomDocument();  
    $xslobj->loadxml($xsldocument);  
  
    $xsltref=new XSLTProcessor;  
    $xsltref->importStylesheet($xslobj);  
    $xsl_output=$xsltref->transformToXML($xmlobj);  
  
    echo $xsl_output;  
  }  
  
?>

Ergebnis (HTML):

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">  
  <head>  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
    <title>Test</title>  
  </head>  
  <body>  
    <h1>Hallo Welt!</h1>  
    <p>123</p>  
  </body>  
</html>

Grüße,
Thomas