Toon posts:

[PHP&XSLT] Welke syntaxis moet ik gebruiken?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo allemaal,

Ik heb een CMS-systeem ontwikkelt met XSLT in PHP 4.0.6, De webhosting-service gebruikt PHP 4.1.2. Helaas is de sintaxis verandert. Ik gebruikte dit:
code:
1
2
3
4
5
6
7
8
$xml = join("", file("../sites/$this->sid/nieuws/xml/$niid.xml"));
$xsl = join("", file("../xsl/nieuws.xsl"));

xslt_process($xsl, $xml, $result);

$fp = fopen ("../sites/$this->sid/nieuws/$niid.html", "w+");
fwrite($fp, $result);
fclose($fp);

Helaas werkt dit niet meer, ik heb de hele documentatie van PHP.net al door gelezen en van alles geprobeert maar zonder resultaat, helaas.

  • RdeTuinman
  • Registratie: Mei 2001
  • Laatst online: 16-08 07:25
Word er nog een foutmelding gegeven oid? En weet je zeker dat die variabelen ($niid en $this->sid) wel een waarde hebben?

edit:[s]
[/s]Klopt de syntax van je xslt_process wel?
kijk eens op www.php.net/xslt_process

  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
zoiets?
PHP:
1
<?/*** Transform a xml string with a xsl string** This function transforms the given xml string with the given xsl string.* Therefor it creates a xslt processor.* NOTE: This function is found succesfull with PHP 4.1.0. Using on other version* is NOT recommended.* NOTE II: Do look carfully at the parameters. The xml is supposed to be given* as a string containg the xml data, but the xsl should be given as a path to* the xsl file!** @param    string      $xml    The xml data to transform* @param    string      $xsl    The xsl file used for transforming $xml* @return   string      The transformed xml* @access   public* @author   Rense Klinkenberg <r.klinkenberg@student.utwente.nl>*/function XSLTransform($xml, $xsl) {    // Process the document, returning the result into the $result variable    // $xml and $xsl contain the XML and XSL data    $arguments = array(         '/_xml' => $xml,         '/_xsl' => implode('', file($xsl))    );    // Allocate a new XSLT processor    $xh = xslt_create();    // Process the document    $result = xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, $arguments);    // Free the XSLT processor    xslt_free($xh);        return $result;}?>

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Hum... het is zeurdering: maar waar jouw probleem is niet een zoektocht naar de juiste syntax. Syntax is namelijk iets heel anders: alle code die voldoet aan de PHP grammatica is syntaxtisch gezien correct.

De syntax van PHP wordt dus gevormd door de grammatica voor PHP en is onafhankelijk van een concreet probleem. Er is dus voor een specifiek probleem geen aparte syntax, wel een aparte manier van werken: functies die je moet aanroepen en de volgorde waarin je deze moet aanroepen. Dit heeft echter helemaal niet met syntax te maken :) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Ik heb een CMS-systeem ontwikkelt met XSLT in PHP 4.0.6, De webhosting-service gebruikt PHP 4.1.2. Helaas is de syntaxis verandert. Ik gebruikte dit:
[topic=512413]

Verwijderd

Topicstarter
Bedankt Bram, Dit keer werd mijn test bestandje wel getransformeerd. Hoogswaarschijnlijk moet het deze code ook werken in mijn CMS. De php-code die bram heeft gepost werkt dus naast 4.1.0 ook in 4.1.2.

(Sorry mbravenboer ... het was niet de bedoeling om je te kwetsen :0)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
henkerik: Sorry mbravenboer ... het was niet de bedoeling om je te kwetsen :0
Gelukkig hoef je dit nu ook voortaan niet meer te doen omdat je nu weet wat syntax is ;) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment

Pagina: 1