J'ai une page Web que j'ai chargé avec le chargement/balisage. J'ai besoin d'analyser un tas de choses, mais certaines des données sont dans les balises. Des idées de comment je peux l'analyser? Voici un échantillon de ce que j'ai (et essayé) jusqu'à présent:Comment analyser les balises HTML avec REBOL?
REBOL []
mess: {
<td>Bob Sockaway</td>
<td><a href=mailto:[email protected]>[email protected]</a></td>
<td>9999</td>
}
rules: [
some [
; The expression below /will/ work, but is useless because of specificity.
; <td> <a href=mailto:[email protected]> s: string! </a> (print s/1) </td> |
; The expression below will not work, because <a> doesn't match <a mailto=...>
; <td> <a> s: string! </a> (print s/1) </td> |
<td> s: string! (print s/1) </td> |
tag! | string! ; Catch any leftovers.
]
]
parse règles du mess charge/marge bénéficiaire
Ce produit:
Bob Sockaway
9999
je voudrais voir quelque chose de plus comme:
Bob Sockaway
[email protected]
9999
Des pensées? Merci!
Remarque! Pour ce que ça vaut, je suis venu avec un bon ensemble de règles simples qui obtenir les résultats souhaités:
rules: [
some [
<td> any [tag!] s: string! (print s/1) any [tag!] </td> |
tag! | string! ; Catch any leftovers.
]
]
Je vais devoir partager ce sur deux commentaires, parce que SO me déteste ... Merci votre réponse détaillée! Ce n'est pas exactement ce que je recherchais (ma faute!), mais cela résout le problème comme indiqué. J'espérais trouver comment analyser une étiquette! donc je pourrais obtenir des informations utiles à partir des différents arguments possibles à l'étiquette. Autrement dit, si l'étiquette! est '' ce serait bien d'être capable d'analyser le contenu de la chaîne href, au lieu de ce qui se trouve entre la balise "a". – oofoe
Initialiser le compte-td à l'intérieur des règles est une bonne astuce et je n'avais pas pensé à maintenir l'état de l'analyse comme vous l'avez décrit. Cependant, voici une formulation plus élégante qui ne nécessite pas la variable supplémentaire: 'rules: [certains [
Votre règle d'analyse fonctionnera et aura une certaine sémantique sur les tables imbriquées, dépend de ce que vous voulez arriver dans ces cas. En tout cas, j'ai mis un lien vers une question que j'ai demandé d'essayer et de suivre sur le sujet que vous avez soulevé dans le titre ... – HostileFork