Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Salve a tutti, mi sono ritrovato a dover scrivere una calsse per la gestione dei tag XML. Sono arrivato al punto di creare una regex che permetta l'analisi di quest'ultimi nodo per nodo:
Il pattern funziona e riconosce anche tag del tipo
Codice sorgente - presumibilmente Plain Text
<nodo atr1="val1" atr2="val2">contenuto</nodo>
Se però voglio usare la funzione preg_match per risalire hai dati contenuti nel suddetto tag i gruppi 2,3 e 4 vengono sovrascritti dall'ultimo attributo. Per esempio nel caso sopraindicato l'array di matches sarà:
La mia domanda è se esiste un modo per estrarre questi valori in un array bidimensionale senza dover rianalizzare ogni attributo per conto suo.
Grazie in anticipo.
si praticamente il secondo gruppo permette la ripetizione degli attributi nel formato attr="val" nel caso vi siano piu attributi nell array matches che vado a generare con
Con le espressioni regolari non penso sia possibile fare quello che chiedi in un solo passo. Potrebbe essere possibile usare questa (in maniera impropria) http://www.php.net/manual/en/function.preg-replace-callbac ... facendo in modo che non avvenga nessuna sostituzione e usare la callback per memorizzare i risultati (visto che la callback viene chiamata ad ogni match). Ma non mi sembra sia la soluzione piu' corretta.
Ok, ho passato tanto tempo a provare con SimpleXMLElement ma con scarsi risultati, il dom mi era stato sconsigliato per la sua difficoltà, a questo punto però ci proverei, se non riesco col dom passo a un regex ripetuta. Grazie per i consigli ;-)