PDA

Volledige versie bekijken : XSLT+XML -> PHP -> (x)html


theFlashWizard
%Europe/Berlin %104 %2006, 03:30
Hey mensjes,
Ik heb een opdrachtje waarbij een php pagina xml output en ik deze op een nette manier moet gaan presenteren in (x)html. Nu doe ik daar wat onderzoek over, want dit valt net buiten mijn kennis gebied.
Ik heb een klein btje rondgekeken en het leek mij dat XSLT de beste optie is om XML op een nette manier te presenteren, wat vinden jullie?

Ik heb geleerd dat je XML op iig 4 manieren met XSLT kan combineren.

Door dit in de xml zelf te zelf zetten: <?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?>
Met javascript, dit werkt echter niet met firefox bijv.
Met asp.
Met php.


Helaas krijg ik de xml vanaf php toegestuurd, het toevoegen van zo'n tag is dus geen optie.
Javascript is volgens mij geen optie omdat dat alleen in IE werkt.
Asp wordt volgens mij minder vaak ondersteunt door php? Klopt dat?
PHP lijkt een minder bekende mogelijkheid, hier kan ik ook niet zo snel veel tutz over vinden.
Wanneer ik zoek op "xml + xslt + php" gaan de tutz meestal over hoe je jezelf werk kan besparen wanneer je een gedeelte van je php maakt met xslt.
Weten jullie mischien nog tutz die informatie geven over het samenvoegen van xml en xslt dmv php tot een (x)html pagina?
Lijkt jullie php in dit geval ook de beste optie?


Alvast bedankt!

moonwalker
%Europe/Berlin %563 %2006, 14:31
Zoals je zelf al zei is XSLT de beste manier om dat op te lossen. Ik vind het wel raar dat je geen toegang hebt tot de PHP bestand zelf. Ik zou zelf de tag (kun je wel in de php bestand zetten, gewoon onder <?xml version="1.0" encoding="iso-8859-1"?> zetten) gebruiken om de XML gelijk een style mee te geven.

Succes.

brossiekoppie
%Europe/Berlin %628 %2006, 16:05
Dat kan heel eenvoudig: (er is ook nog een andere extensie maar die is sinds php5 enkel nog via pecl beschikbaar).

<?php

$doc = new DOMDocument();
$xsl = new XSLTProcessor();

$xml_filename = 'file.xml';
$xsl_filename = 'file.xsl';

$doc->load($xsl_filename);
$xsl->importStyleSheet($doc);

$doc->load($xml_filename);
echo $xsl->transformToXML($doc);

?>

theFlashWizard
%Europe/Berlin %651 %2006, 16:38
Bij deze opdracht moet ik samenwerken met www.booking.com. Hierbij kan de gebruiker iets invoeren en geven hun de uitkomst in xml via php terug. Vandaar dat ik daar geen toegang toe heb.

Je bedoelt dat ik de output zou kunnen includen in een php bestand waarbij ik
<?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?>
in mijn php zet en op die manier de XLST verbind aan de xml?

brossiekoppie
%Europe/Berlin %684 %2006, 17:25
Als je toegang hebt tot een PHP5 server lijkt mijn mogelijkheid toch het handigste.

Je kan ipv file.xml ook gewoon de url naar het php-bestand geven dat de xml output.

theFlashWizard
%Europe/Berlin %692 %2006, 17:37
brossiekoppie, is een standaart ondersteuning van php daarvoor voeldoende of heb je dan extensies ofzo nodig?

brossiekoppie
%Europe/Berlin %694 %2006, 17:40
Er bestaat niet echt een standaard php config. Het enige dat je kan doen om het te controleren is door een php bestand aan te maken met dit erin:

<?php phpinfo(); ?> en dan te zoeken naar "xsl" Als je het nergens vindt dan kan het waarschijnlijk niet. Je kan natuurlijk ook altijd even testen met de code die ik hierboven heb gepost.

theFlashWizard
%Europe/Berlin %714 %2006, 18:09
owke thnx :)

damarez
%Europe/Berlin %633 %2006, 16:12
ik zou je adviseren om cdata te gebruiken
ik heb ook zo een app gemaakwaar je met een formulier
data plaats in een mysql database
vervolgens haal je het met php op als xml en plaats ik de data in flash
met cdata gaat het perfect

theFlashWizard
%Europe/Berlin %686 %2006, 17:28
sorry damarez, ik kan de php die de xml maakt niet aanpassen.
Ook maak in in deze opdracht geen gebruik van flash.

damarez
%Europe/Berlin %820 %2006, 20:41
sorry
ik lees nu dat je iets anders bedoeld