Mehrere Bedingungen prüfen

Beispiel ausführen

Hier anhand einer einfachen XSL-Transformation ein Beispiel wie man mehrere Bedingungen abprüfen kann. Es werden die boolschen Rückgabewerte aller Tests die für den erfolgreichen Programmlauf erforderlich sind in einem Array gesammelt.

<?php

/* das XML ... */

$xml = <<<EOT
<book>
    <chapter>
        <title>Chapter I.</title>
        <content><p>Once upon a time ...</p></content>
    </chapter>
</book>
EOT;


/* das XSL ... */

$xsl = <<<EOT
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="title"><h1><xsl:value-of select="." /></h1></xsl:template>
    <xsl:template match="content"><xsl:copy-of select="." /></xsl:template>
</xsl:stylesheet>
EOT;


/* In diesem Array werden die Ergebnisse der Tests abgelegt ... */
$test = array();


$test['XML is empty'] = !empty($xml);


$xmldoc = new DOMDocument;
$test['XML is not valid'] = @$xmldoc->loadXML($xml);

$xsldoc = new DOMDocument;
$test['XSL is not valid'] = @$xsldoc->loadXML($xsl);

$proc = new XSLTProcessor();
$test['XSLT-Processor failed'] = @$proc->importStyleSheet($xsldoc);


/* da true im numerischen Kontext zu int(1) gewandelt wird kann man sehr einfach prüfen 
ob alle Tests erfolgreich waren. */

if (count($test) != array_sum($test)){

    
/* die erfolgreichen Tests werden aus dem Array gefiltert, übrig bleiben die Fehlermeldungen */
    
$test array_filter($testcreate_function('$a''return !$a;'));
    print 
'Ups, das hat leider nicht geklappt.';
    
var_dump($test);
}else{

    
$html $proc->transformToXML($xmldoc);
    print 
$html;
}

?>

Benutzte Funktionen


Hinweise zum DatenschutzImpressum © 2005-2008 S. Eickhoff