!No comment
Posted: Dicembre 8th, 2007 | Author: packz | Filed under: Life, Programmazione | Commenti disabilitati su !No commentW le regexp e le giornate passate con il mal di testa dovuto a troppe birre e al Jazz….
/*
* Questa funzione prende come argomento una variabile contenente dati XML e
* effettua il parsing restituendo il contenuto tra queste <tag>.
*
* tag: nome della tag da cui ottenere il contenuto
* xml: variabile contenente l’XML da parsare
*/
function get_contents_between_tag(tag,xml){
/*
* questa mi ha procurato molti fastidi: devi trovare tutte le occorrenze tra
* <tag> e </tag> con all’interno altre tags innestate includendo ritorni a
* capo (‘n’) e cercando di essere ‘pigro’ (con il carattere ? dopo * vedi
* pg 65 di "Espressioni regolari" Apogeo 7.50€ spesi bene alla fine")
*
* Alla fine potevo pure fare un parsing preliminare per togliere ritorni a
* capo e tab e poi fare tutto questo! ma sono un picio e alla fine ho impa-
* rato pure la pigrizia delle regexp!!!
*
* P.S: è più lungo il commento che la funzione.
*/
var pattern = "<"+tag+">([\n</>a-zA-Z0-9. ]*?)(</"+tag+">)";
var re = new RegExp(pattern,"g");
/*creiamo variabile backreference che prenda il contenuto delle tag*/
var backreferences = new Array();
for( var index = 0 ; (match = re.exec(xml)) != null; index++ ){
backreferences[index] = match[1];
}
return backreferences;
}
Per info sull’uso delle regex su firefox vedi Core Javascript 1.5 Guide:Regular Expressions