Ik heb een vraagje over XML/XSL. Ik wil graag xml files parsen die remote op een server staan. Moet ik ze eerst lokaal zetten voor ik ze kan parsen of kan dat ook vanaf http://server.net/blaaht.xml
Met ASP is dit mogenlijk, ik weet niet of het ook met alleen puur xml/xsl kan.
weinig tot niks..
Verwijderd
Wat bedoel je met parsen?MAZZA: Ik wil graag xml files parsen die remote op een server staan. Moet ik ze eerst lokaal zetten voor ik ze kan parsen?
(En wat bedoel je met lokaal zetten? Je hebt sowieso data lokaal nodig om te kunnen parsen natuurlijk.)
Nee hoor, je kan een xml file van een remote server ophalen en met je locale of een andere remote xsl file parsen.Op woensdag 24 oktober 2001 12:19 schreef Arien het volgende:
[..]
Wat bedoel je met parsen?
(En wat bedoel je met lokaal zetten? Je hebt sowieso data lokaal nodig om te kunnen parsen natuurlijk.)
weinig tot niks..
Verwijderd
En hoe weet je wat er in een remote file staat?didio: Nee hoor, je kan een xml file van een remote server ophalen en met je locale of een andere remote xsl file parsen.
Dat moet je wel weten van te voren, maar dat is toch geen probleem. Je werkt toch nooit met xml files die je op gaat vragen waar je niet van weet wat er in staat?Op woensdag 24 oktober 2001 12:25 schreef Arien het volgende:
[..]
En hoe weet je wat er in een remote file staat?
weinig tot niks..
Als je van XSL gebruikt maakt kan je gewoon de document(...) functie gebruiken. Door middel van deze document functie kan je andere XML bronnen gebruiken... Op GoT staan wel wat voorbeelden.
Je kan bijvoorbeeld document('bla.xml')/catalog/boek[@id = current()/@ref] gebruiken om het boek met een bepaalde id te zoeken in het document bla.xml. Het argument van document met elke URL zijn, dus ook remote.
Je kan ook apply-templates doen op een extern document.
Je kan bijvoorbeeld document('bla.xml')/catalog/boek[@id = current()/@ref] gebruiken om het boek met een bepaalde id te zoeken in het document bla.xml. Het argument van document met elke URL zijn, dus ook remote.
Je kan ook apply-templates doen op een extern document.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Wat ik bedoel is dat ik bijvoorbeeld dit doe:
Oftewel de xml file vanaf het tweakers domein inlees en die dan laat afhandelen op mijn server zelf. En ik weet dat de url die ik hier in het voorbeeld gebruik niet bestaat maar het gaat om het idee
PHP:
1
2
3
4
5
6
| <? $parser = xslt_create(); xslt_run($parser, 'tweakers.xsl', 'http://www.tweakers.net/tweakers.xml'); print xslt_fetch_result($parser); xslt_free($parser); ?> |
Oftewel de xml file vanaf het tweakers domein inlees en die dan laat afhandelen op mijn server zelf. En ik weet dat de url die ik hier in het voorbeeld gebruik niet bestaat maar het gaat om het idee
Owh, je bedoelt dus niet in je XSL file...
Dan hangt het dus van de XSL engine af. In Java kan dit inderdaad (sterker nog, je kan elke willekeurige bron gebruiken), maar hoe dit in PHP zit weet ik niet.
freak007 vast wel
.
Probeer het anders gewoon?
Dan hangt het dus van de XSL engine af. In Java kan dit inderdaad (sterker nog, je kan elke willekeurige bron gebruiken), maar hoe dit in PHP zit weet ik niet.
freak007 vast wel
Probeer het anders gewoon?
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Als ik dat doe op de volgende manier:
Krijg ik dit:
Fatal error: cannot read from URI 'http://www.tweakers.net/turbotracker.dsp' in /www/htdocs/xml/index.php on line 3
No go
PHP:
1
2
3
4
5
6
| <? $parser = xslt_create(); xslt_run($parser, 'tweakers.xsl', 'http://www.tweakers.net/turbotracker.dsp'); print xslt_fetch_result($parser); xslt_free($parser); ?> |
Krijg ik dit:
Fatal error: cannot read from URI 'http://www.tweakers.net/turbotracker.dsp' in /www/htdocs/xml/index.php on line 3
No go
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
| <? // Get data from XSL and XML file $xsl = implode('', file('xsl_bestandje.xsl')); $xml = implode('', file('http://www.tweakers.net/turbotracker.dsp')); // Transform the XML stream xslt_process($xsl, $xml, $result); // Output the transformed stream echo $result; ?> |
Als het goed is moet dit wel werken. Je hoeft alleen maar effe de locatie van het xsl bestand aan te passen en klaar.
Die xslt_run() functie was altijd een beetje bagger. Blijkbaar hebben ze er nog geen HTTP ondersteuning ingezet, maar met bovenstaande manier gaat het perfect.Op woensdag 24 oktober 2001 18:36 schreef MAZZA het volgende:
Als ik dat doe op de volgende manier:
PHP:
1 2 3 4 5 6 <? $parser = xslt_create(); xslt_run($parser, 'tweakers.xsl', 'http://www.tweakers.net/turbotracker.dsp'); print xslt_fetch_result($parser); xslt_free($parser); ?>
Krijg ik dit:
Fatal error: cannot read from URI 'http://www.tweakers.net/turbotracker.dsp' in /www/htdocs/xml/index.php on line 3
No go
Whoa!Op woensdag 24 oktober 2001 20:23 schreef freak007 het volgende:
PHP:
1 2 3 <? [..] ?>
Als het goed is moet dit wel werken. Je hoeft alleen maar effe de locatie van het xsl bestand aan te passen en klaar.
Kzei toch dat freak007 het wel wistMAZZA: Whoa!Dat werkt!
Ta very much
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Tja voor zover ik weet zijn jullie hier de twee XML gurus
Dat blijkt maar weer 
http://maztrix.xs4all.nl/ Voor het resultaat..
XSL sheet staat hier
http://maztrix.xs4all.nl/ Voor het resultaat..
XSL sheet staat hier
Netjes
.
Als je die for-each nog even vervangt door een template ben je helemaal een held
.
Als je die for-each nog even vervangt door een template ben je helemaal een held
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
maar let op:Op woensdag 24 oktober 2001 21:51 schreef mbravenboer het volgende:
Kzei toch dat freak007 het wel wist.
disclaimer:
Behaalde resultaten uit het verleden, kunnen geen garatie bieden voor de toekomst
Gebruik je nu direct mijn scriptje? Die is nl. niet zoals het helemaal zou horen volgens http://www.tweakers.net/reviews/76Op woensdag 24 oktober 2001 21:55 schreef MAZZA het volgende:
Tja voor zover ik weet zijn jullie hier de twee XML gurusDat blijkt maar weer
http://maztrix.xs4all.nl/ Voor het resultaat..
XSL sheet staat hier
Dan moet je er nog effe een simpel cache mechanisme omheen bouwen.De turbotracker wordt om de 5 minuten herschreven. Het is ivm de server load niet de bedoeling dat je de file vaker dan om de 5 minuten van de server trekt:
Pagina: 1