[PHP] gegenereerd XML transformeren

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Johnny
  • Registratie: December 2001
  • Laatst online: 17-09 16:59

Johnny

ondergewaardeerde internetguru

Topicstarter
Ik probeer een WAP pagina te maken die gebruikt makat van gegevens uit een XML bestand en deze via PHP transformeert naar een WML pagina. Dat werkt goed wanneer het een statisch XML bestand is, maar dat is niet de bedoeling.

Het XML bestand wordt namelijk door PHP gegenereerd, maar zodra ik dat doe gaat het fout.

Als ik de transformatie client-side doe (via de browser in plaats van PHP) dan werkt het wel.

Als ik de gerenderde XML van jrb_xml.php in een statisch XML bestand plak, bijvoorbeeld jrb_xml.xml dan werkt het ook.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php 

header("Content-type: text/vnd.wap.wml");

// beginnen
$xh = xslt_create();

// combineer de bestandjes naar een WMl pagina
$result = xslt_process($xh, "jrb_xml.php", "wap/jrb.xsl");
if($result) 
    {
//WML DTD's enz.
    echo("<?xml version=\"1.0\"?>\n
<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" \"http://www.wapforum.org/DTD/wml_1.1.xml\">\n");
   
    echo($result);
    }

xslt_free($xh);


Ik heb al diverse manier gebrobeerd, voor het openen van de bestanden, maar de errors blijven komen. :(

Andere vraag: Zodra ik een <br/> in het XSL bestand neerzet krijg ik een error dat het geen "wel formed XML" is (tag wordt nergens afgesloten), maar dat is omdat PHP hem zelf omzet naar <br> 8)7 Heeft iemand daar een oplossing voor?

[ Voor 6% gewijzigd door Johnny op 21-12-2003 22:09 ]

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


Acties:
  • 0 Henk 'm!

Verwijderd

Als je op deze manier het php-script aanroept wordt niet de output gepakt, maar de source zelf. Ik zou zeggen, steek de code die je nu hebt in je main script en gooi d'r een zooi condities tegenaan zodat het overzicht bewaard blijft en above all je script werkt.

Over de XSL fouten, als je de XML en je XSL bestanden eens post kan er misschien meer gezegd worden.

Kan je ook informatie geven over wat voor manier je gebruikt om XML op te zetten? Sax, DOM, eigengemaakt ding?

Alvast succes

Acties:
  • 0 Henk 'm!

Verwijderd

Heb je al op http://nl.php.net/xslt_process naar "example 3" gekeken? Daar staat uitgelegd hoe je XML die in een variable staat kunt gebruiken.
Je kunt het ook combineren met de syntax die jij gebruikt, zodat je de xml uit een variabele en de xsl uit een bestand laat komen.

Acties:
  • 0 Henk 'm!

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
je moet ff zoiets doen:

code:
1
2
3
4
5
6
7
8
function getxml($url)
{
            $file = fopen("http://".$url,"r");
            while(!feof($file))
                $xml .= fgets($file, 1024);
            fclose($file);
            return $xml;
}


en dat idd icm met die example 3.

($url is de url van je dynamische php->sml script, dus in jouw geval iets op locahost waarschijnlijk )

tip: op deze manier kun je met Sablotron ook scheme handlers bouwen zodat je vanuit XSL files naar externe dynamische PHP scripts kunt verwijzen die XML genereren.

[ Voor 13% gewijzigd door Genoil op 22-12-2003 10:49 ]