XSL Transformation mit Javascript Code in HTML funktioniert nicht ?

shockshell

Erfahrenes Mitglied
Hallo,

ich habe ein "Mischproblem" und hoffe das mir evtl. jemand helfen kann.

Ich habe eine Seite, die in mehreren Funktionen HTML-Fragmente erzeugt. Diese Fragmente sollen dann durch eine XML/XSL-Transformation zusammengefügt werden.

PHP:
$proc = new XSLTProcessor;
...     
$proc->setParameter('','MENU',$g->createGroup($gruppe);
...
$xml = new DOMDocument();
$xml->load($this->xmlfile);
$xsl = new DOMDocument;
$xsl->load($this->xslfile);
$proc->importStyleSheet($xsl);
return $this->tidyOutput($proc->transformToXML($xml));

Soweit funktioniert das auch ganz gut. Nur leider enthält die Funktion createGroup javascript in der Form onmouseover="status='...'; return true".
Dieser Code führt nun durch das Mischen der einfachen und doppelten Anführungszeichen zu folgender Fehlermeldung des PHP-Parsers:

XSLTProcessor::transformToXml() : Cannot create XPath expression (string contains both quote and double-quotes)

Das Ersetzten der einfachen durch escapte doppelte Anführungszeichen (onmouseover="status=\"...\"; return true") erzeugt eine Javascript-Fehlermeldung
illegal Character \ , aber der Parser läuft problemlos durch.

Die XSL-Datei zur Transformation sieht folgendermaßen aus:

HTML:
<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" encoding="ISO-8859-1">
<xsl:output cdata-section-elements="body a" />
<xsl:param name="MENU" select="''"/>
...
...
...
<xsl:value-of select="$MENU" disable-output-escaping="yes" />

Weiß vielleicht jemand wie ich trotz Javascript den XSLTProzessort zur korrekten Bearbeitung bewegen kann? Evtl. gibt es ja in PHP irgendwelche Optionen, oder ich muss mein XSL Dokument ändern.

Für Eure Hilfe bin ich sehr dankbar.

Shockshell
 
Habs herausgefunden. Muste nur die einfachen Anführungszeichen durch &quot; ersetzen und schon ist alles geritzt.
 

Neue Beiträge

Zurück