[PHP] domxml + xslt $var meegeven aan process

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • cybermans
  • Registratie: Maart 2001
  • Laatst online: 17-09 09:56
Volgens PHP.net kan je vars meegeven aan een xslt process. Dat lijkt mij dus verrekte handig en ging dit implementeren.
Stukje php:
PHP:
1
2
3
$params = array ( 
    '\$order' => 'Stamp' ); //'order' en '$order' ook al gedaan
$result  = $xsldoc->process($xml, $params);  //Line 8

Stukje XSLT:
code:
1
<xsl:sort select="$order"  order="descending" />


Vervolgens ik dit runnen en dan krijg ik leuke gezellige errors:
Warning: process(): runtime error: file sheet.xsl element sort in /var/www/localhost/htdocs/manstest/xml/parser.php on line 8

Warning: process(): unregistered variable order in /var/www/localhost/htdocs/manstest/xml/parser.php on line 8

Warning: process(): xmlXPathCompiledEval: evaluation failed in /var/www/localhost/htdocs/manstest/xml/parser.php on line 8
ut is php 4.3.6

Iemand enig idee hoe het wel moet?

[ Voor 6% gewijzigd door cybermans op 19-06-2004 10:45 ]

Strava | Runkeeper | Endomondo (mijn leikr uploads)


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
cybermans schreef op 19 juni 2004 @ 10:44:
Volgens PHP.net kan je vars meegeven aan een xslt process. Dat lijkt mij dus verrekte handig en ging dit implementeren.
Stukje php:
PHP:
1
2
3
$params = array ( 
    '\$order' => 'Stamp' ); //'order' en '$order' ook al gedaan
$result  = $xsldoc->process($xml, $params);  //Line 8

Stukje XSLT:
code:
1
<xsl:sort select="$order"  order="descending" />


Vervolgens ik dit runnen en dan krijg ik leuke gezellige errors:

[...]


ut is php 4.3.6

Iemand enig idee hoe het wel moet?
probeer het eens met test. Een $ met daarachter een naam ($order bijvoorbeeld dus) is in XSLT ook een variable. <xsl:variable name="blaat" select="12"/> hiervan haal de waarde van blaat op met $blaat bijvoorbeeld.

PHP:
1
2
3
$params = array ( 
    'test' => 'Stamp' );
$result  = $xsldoc->process($xml, $params);


code:
1
2
<xsl:param name="test">default<!-- oid --></param>
<xsl:sort select="test"  order="descending" />

en voer voor de grap eens deze code uit:
PHP:
1
2
3
4
5
6
7
8
<?php

$a = 1;

print '{$a}23<br/>';
print "{$a}23";

?>

[ Voor 12% gewijzigd door Michali op 19-06-2004 10:54 ]

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

Verwijderd

Heb je wel een xsl:param element in je document staan met die naam?

Acties:
  • 0 Henk 'm!

  • cybermans
  • Registratie: Maart 2001
  • Laatst online: 17-09 09:56
ik had idd geen <xsl:param name="dingetje" /> staan
nu wel maar het werkt nog steeds niet

ik heb de param binnen en buiten me template match gezet en hij geeft dan geen error meldingen maar hij sorteert ook niet

Strava | Runkeeper | Endomondo (mijn leikr uploads)


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Misschien ben ik gek, maar moet je geen dubbele quotes (of beter: geen quotes) gebruiken als je wil dat je var geparset wordt? :? Het is dat, of ik begrijp je vraag niet. ;)

PHP:
1
2
3
$params = array (
    $order => 'Stamp' );
$result  = $xsldoc->process($xml, $params);

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.