Hi
Ich hab ein kleines Problem mit meinem xsl Stylesheet. Datum wird mir einfach keines ausgegeben. Der normale Text,Titel und Link werden mir ausgegeben.
Und formatiert wird der Text auch nicht, so wie ich es eigentlich im xsl Stylesheet angegeben habe.
So schaut mein xsl Stylesheet mal aus:
In meiner PHP Datei ruf ich das so auf:
Ich hab ein kleines Problem mit meinem xsl Stylesheet. Datum wird mir einfach keines ausgegeben. Der normale Text,Titel und Link werden mir ausgegeben.
Und formatiert wird der Text auch nicht, so wie ich es eigentlich im xsl Stylesheet angegeben habe.
So schaut mein xsl Stylesheet mal aus:
PHP:
<?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="datensatz/*">
<html>
<head><title>Referenzen</title></head>
<body>
<xsl:for-each select="datensatz">
<p>
<b><xsl:value-of select="titel" /></b><br />
<xsl:value-of select="text" /><br />
<xsl:value-of select="datum">
<xsl:value-of select="links" />
</p>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
In meiner PHP Datei ruf ich das so auf:
PHP:
require_once('sqlConnection.php');
new Ausgabe(1);
class Ausgabe{
private function datenAusgabe($domDoc){
$arrDomList = helpFunctions::getNodes($domDoc, "//datensatz");
foreach($arrDomList as $domNode){
echo $domNode->nodeValue;
}
}
/*
* Daten in RSS-Feed mit XSLT umwandeln
*/
private function rssAusgabe($domDoc){
$domXSL = new DOMDocument;
$domXSL->load("Rss.xsl");
$xslProzessor = new XSLTProcessor;
$xslProzessor->importStyleSheet($domXSL);
echo $xslProzessor->transformToXML($domDoc);
}
/*
* Ruft, je nach Modus, automatisch eine ausgabe Funktion auf
*/
public function __construct($intMode = 0){
$domDoc = helpFunctions::xmlFromSql();
switch($intMode){
case 1:
$this->datenAusgabe($domDoc);
break;
default:
$this->rssAusgabe($domDoc);
}
}
}
class helpFunctions{
public static function xmlFromSql(){
$domDoc = new DOMDocument();
$domDaten = $domDoc->createElement("daten");
require('sqlConnection.php');
$sqlQuery = mysql_query("SELECT titel, text, datum, links FROM Blog");
while($sqlResult = mysql_fetch_object($sqlQuery)){
//Elemente erzeugen
$domDatensatz = $domDoc->createElement("datensatz");
$domTitel = $domDoc->createElement("titel");
$domText = $domDoc->createElement("text");
$domDatum = $domDoc->createElement("datum");
$domLinks = $domDoc->createElement("links");
//Inhalte aus DB einfügen
$domTitel->nodeValue = $sqlResult->titel;
$domText->nodeValue = $sqlResult->text;
$domDatum->nodeValue = $sqlResult->datum;
$domLinks->nodeValue = $sqlResult->links;
//Elemente zum XML-Baum hinzufügen
$domDatensatz->appendChild($domTitel);
$domDatensatz->appendChild($domText);
$domDatensatz->appendChild($domDaten);
$domDatensatz->appendChild($domLinks);
$domDoc->appendChild($domDatensatz);
}
return $domDoc;
}
public static function getNodes(DOMDocument $domDoc, $xpathString) {
$xp = new DOMXPath($domDoc);
$xp->registerNamespace('x', 'http://www.w3.org/1999/xhtml');
$xp->registerNamespace('xhtml', 'http://www.w3.org/1999/xhtml');
$xp->registerNamespace('i18n', 'http://apache.org/cocoon/i18n/2.1');
$ret = array();
$nodes = $xp->query($xpathString);
foreach ($nodes as $node){
array_push($ret, $node);
print_r($node);
}
return $ret;
}
}
?>