Toon posts:

[PHP5] PHP5 & XSLT werkt niet

Pagina: 1
Acties:
  • 489 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo,

ik probeer d.m.v. een xslt processor mijn xml & xls om te zetten naar html output. In de applicatie waarin ik deze xml & xsl file heb gemaakt werkt dit. Dit wil ik ook graag doen d.m.v. php. Zodat ik diverse templates voor een website kan gebruiken.
Nu heb ik op PHP.net in de manual al een heel stuk over een XSLT processor gevonden. Maar ik krijg dit maar niet werkend in PHP5...
Dit is de code die ik gebruik om te testen:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
// $xml and $xsl contain the XML and XSL data

$xml = file_get_contents("personal.xml");
$xsl = file_get_contents("personal.xsl");
$arguments = array(
     '/_xml' => $xml,
     '/_xsl' => $xsl
);

// Allocate a new XSLT processor
$xh = xslt_create();

// Process the document
$result = xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, $arguments);
if ($result) {
    print "SUCCESS, xml was transformed by xsl into the \$result";
    print " variable, the \$result variable has the following contents\n<br>\n";
    print "<pre>\n";
    print $result;
    print "</pre>\n";
}
else {
    print "Sorry, xml could not be transformed by xsl into";
    print "  the \$result variable the reason is that " . xslt_error($xh) .
    print " and the error code is " . xslt_errno($xh);
}
xslt_free($xh);
?>

En de error die ik krijg:
code:
1
Fatal error: Call to undefined function xslt_create() in C:\wamp\www\xslttest.php on line 12

Verwijderd

Waarschijnlijk de library nog niet meegecompileerd?

http://nl2.php.net/manual/nl/ref.xslt.php

Verwijderd

Topicstarter
Ow vergeten te vermelden, ik draai Win32 Apache 2 met PHP5 (wamp)

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
Ik heb onlangs een (heel) simpel script gemaakt waarmee je de inhoud van een rss feed naar een database kan wegschrijven. Misschien heb je er iets aan.

Download

March of the Eagles


Verwijderd

Topicstarter
Neej daarmee lees je gegevens uit en schrijf je het naar een DB. Met XSLT maak je d.m.v. een stylesheet (xsl) en je datafeed (xml) bijv een html webpagina

  • tech-no-logical
  • Registratie: December 2000
  • Laatst online: 17-03 15:41
da's voor php4. voor php5 moet je kijken naar http://nl2.php.net/manual/nl/ref.xsl.php

edit : was als reactie op Sooterd....

[ Voor 23% gewijzigd door tech-no-logical op 07-02-2006 13:53 ]


  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
Kijk eens met phpinfo() of je wel xslt ondersteuning hebt.

Zie ook
http://be2.php.net/xslt
http://www.topxml.com/php_xslt/default.asp

March of the Eagles


Verwijderd

Topicstarter
XSLT moet werken volgens phpinfo?
xsl
XSL enabled
libxslt Version 1.1.15
libxslt compiled against libxml Version 2.6.22
EXSLT enabled
libexslt Version 0.8.12

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
Dat is voor de standaard DOM extensie. Lees dit maar eens:
Note: This extension has been moved to the PECL repository and is no longer bundled with PHP as of PHP 5.0.0.

Note: If you need xslt support with PHP 5 you can use the XSL extension.

Noushka's Magnificent Dream | Unity


Verwijderd

Topicstarter
Ja dat vind ik overall, dat over PECL. Maar snap niet precies wat ik er mee moet. Ik heb in die PECL repositoy gekeken maar vind daar verder niks m.b.t xsl(t)

  • tech-no-logical
  • Registratie: December 2000
  • Laatst online: 17-03 15:41
je moet gewoon in de docs kijken en xsl op de php-5 manier gebruiken, zie mijn eerdere post

Verwijderd

Topicstarter
tech-no-logical schreef op dinsdag 07 februari 2006 @ 14:47:
je moet gewoon in de docs kijken en xsl op de php-5 manier gebruiken, zie mijn eerdere post
Ah dacht dat dat dezelfde docs waren als die ik al had. Maar deze zijn weer verschillend :s. PHP.net blijft een vage site, maar alles werkt nu :) Thnx!

De code die ik dus nu heb gebruikt:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
/* Load the two XML sources */
$xml = new DomDocument; // from /ext/dom
$xml->load('personal.xml');

$xsl = new DomDocument;
$xsl->load('personal.xsl');

/* Configure the transformer */
$proc = new xsltprocessor;
$proc->importStyleSheet($xsl); // attach the xsl rules
echo $proc->transformToXML($xml); // actual transformation
?> 
Pagina: 1