Problème de 'parse
reboltof7-Mar-2014/18:25:55+1:00
Bonjour les reboleurs,
   
Il y a maintenant une dizaine d'années, je me débrouillais pas mal avec le formidable parseur de REBOL. Mais n'ayant plus pratiqué depuis, je suis de nouveau confronté à mes limites.

J'apprécierais votre aide pour le cas suivant.

*But poursuivi*: extraire d'un fichier .html les noms de fichier en .js et en .css

*Code utilisé*:

   file: read %sommaire.html

   ref: copy ""

   parse file [
      some [
         [thru "src=" copy ref to ">" (print "js")] |
         [thru "href=" copy ref to "/>" (print "css")]
      ]
   ]

*Résultat obtenu*: "js js js js js js js" alors que des "css" sont présents

J'ai essayé diffèrentes variations, mais sans meilleurs résultats. Là je coince, et je passe à l'équipe
deglingo7-Mar-2014/19:57:09+1:00
Bonjour Reboltof,

Allez, je me lance. Ca va me faire pratiquer un peu.
Voilà ma tentative :
file: read %sommaire.html

ref: copy ""
result: copy []
css: copy []
js: copy []

parse file [
   any [
      [to "<link" thru {href="} copy ref to {"} [to "/>" | to "</link>"] (
      		append result ref
      		append css ref
      )]
      | [to "<script" thru {src="} copy ref to {"} [to "/>" | to "</script>"] (
      		append result ref
      		append js ref
      )] 
   ]
]

probe result
probe css
probe js

save %result.txt result

Par-contre, tu peux passer à côté des appels de CSS et de JS construits dynamiquement.
deglingo7-Mar-2014/20:37:34+1:00
Autre variante :
file: read %sommaire.html

ref: copy ""
css: copy []
js: copy []

parse file [
   any [
       [thru {href="} | thru {src="}] copy ref to {"}  (
      		if find ref ".css" [append css ref]
      		if find ref ".js" [append js ref]      		
      )
   ]
]

probe css
probe js

result: union css js
save %result.txt result
save %css.txt css
save %js.txt js
reboltof15-Mar-2014/15:43:18+1:00
Merci deglingo, je teste ça le plus rapidement possible !

Login required to Post.


Powered by RebelBB and REBOL 2.7.8.4.2