[XML/XSL] Remote xml files mogelijk :?

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

  • MAZZA
  • Registratie: Januari 2000
  • Laatst online: 09-09 15:29

MAZZA

Barbie is er weer!

Topicstarter
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 :?

  • didio
  • Registratie: Maart 2001
  • Laatst online: 01-04 09:19

didio

didio.nl

Met ASP is dit mogenlijk, ik weet niet of het ook met alleen puur xml/xsl kan.

weinig tot niks..


Verwijderd

MAZZA: Ik wil graag xml files parsen die remote op een server staan. Moet ik ze eerst lokaal zetten voor ik ze kan parsen? :?
Wat bedoel je met parsen?
(En wat bedoel je met lokaal zetten? Je hebt sowieso data lokaal nodig om te kunnen parsen natuurlijk.)

  • didio
  • Registratie: Maart 2001
  • Laatst online: 01-04 09:19

didio

didio.nl

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.)
Nee hoor, je kan een xml file van een remote server ophalen en met je locale of een andere remote xsl file parsen.

weinig tot niks..


Verwijderd

didio: Nee hoor, je kan een xml file van een remote server ophalen en met je locale of een andere remote xsl file parsen.
En hoe weet je wat er in een remote file staat?

  • didio
  • Registratie: Maart 2001
  • Laatst online: 01-04 09:19

didio

didio.nl

Op woensdag 24 oktober 2001 12:25 schreef Arien het volgende:

[..]

En hoe weet je wat er in een remote file staat?
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?

weinig tot niks..


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
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.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • MAZZA
  • Registratie: Januari 2000
  • Laatst online: 09-09 15:29

MAZZA

Barbie is er weer!

Topicstarter
Wat ik bedoel is dat ik bijvoorbeeld dit doe:
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 ;)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
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?

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • MAZZA
  • Registratie: Januari 2000
  • Laatst online: 09-09 15:29

MAZZA

Barbie is er weer!

Topicstarter
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 :?

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 15-09 23:45
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.

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 15-09 23:45
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 :?
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.

  • MAZZA
  • Registratie: Januari 2000
  • Laatst online: 09-09 15:29

MAZZA

Barbie is er weer!

Topicstarter
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.
Whoa! :) Dat werkt! :) Ta very much :)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
MAZZA: Whoa! :) Dat werkt! :) Ta very much :)
Kzei toch dat freak007 het wel wist ;) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • MAZZA
  • Registratie: Januari 2000
  • Laatst online: 09-09 15:29

MAZZA

Barbie is er weer!

Topicstarter
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 :)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Netjes :) .

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


  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 15-09 23:45
Op woensdag 24 oktober 2001 21:51 schreef mbravenboer het volgende:
Kzei toch dat freak007 het wel wist ;) .
maar let op:
disclaimer:
Behaalde resultaten uit het verleden, kunnen geen garatie bieden voor de toekomst
:+
Op woensdag 24 oktober 2001 21:55 schreef MAZZA het volgende:
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 :)
Gebruik je nu direct mijn scriptje? Die is nl. niet zoals het helemaal zou horen volgens http://www.tweakers.net/reviews/76
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:
Dan moet je er nog effe een simpel cache mechanisme omheen bouwen.
Pagina: 1