Scix Skrevet 9. november 2006 Del Skrevet 9. november 2006 Heia! Har sittet å slitt med å gjøre noe fryktelig dårlig formatert tekst, om til en xml fil, og kommer nå med bøyd hode, og spør etter hjelp. Allt er skrevet på en linje, og hver blokk er startet med en @[bokstav/tall] kode. Hvordan kan jeg få splittet dette opp i XML format. Source: @FGamle Testamentet@IFørste Mosebok@KKapittel 1@AGud skaper verden.@V1@BI begynnelsen skapte Gud himmelen og jorden.@C2:4. Sal 33:6. 102:26. Jes 45:18. Jer 32:17. Joh 1:1,3. Kol 1:16. Heb 11:3. Ønsket resultat: <del id='1'> <navn>Gamle Testamentet</navn> <bok id='1'> <navn>Første Mosebok</navn> <kapittel id='1'> <inneholder>Gud skaper verden</inneholder> <vers id='1'> <tekst>I begynnelsen skapte Gud himmelen og jorden</tekst> <rel>2:4. Sal 33:6. 102:26. Jes 45:18. Jer 32:17. Joh 1:1,3. Kol 1:16. Heb 11:3.</rel> </vers> ... </kapittel> ... </bok> ... </del> Punktumene i koden viser bare at det kommer en ny en. Gidder ikke skrive flere deler manuelt. Noen som kan hjelpe meg / vise meg i tretning hvordan jeg skal skrive kode som kan gjøre det for meg? Grunnen til at jeg tar det i PHP delen, er at jeg kan ikke noe annet en php som scriptspråk. --- btw. Hvis dere alt vet om bibelen allerede er laget i XML, så kan dere få låv til å gi ett hint Lenke til kommentar
ZoRaC Skrevet 9. november 2006 Del Skrevet 9. november 2006 Hva med å bruke strpos og substr? PHP <?php$start = strpos($bibel, "@F"); $end = strpos($bibel, "@I"); $array[0] = substr($bibel, $start, $end); $start = $end; $end = strpos($bibel, "@K"); $array[1] = substr($bibel, $start, $end); $start = $end; $end = strpos($bibel, "@A"); $array[2] = substr($bibel, $start, $end); // osv ?> <del id='1'> <navn><?php echo $array[0]; ?></navn> <bok id='1'> <navn><?php echo $array[1]; ?></navn> <kapittel id='1'> <inneholder><?php echo $array[2]; ?></inneholder> <vers id='1'> <tekst><?php echo $array[3]; ?></tekst> <rel><?php echo $array[4]; ?></rel> </vers> ... </kapittel> ... </bok> ... </del> Noe sånt? Lenke til kommentar
Scix Skrevet 9. november 2006 Forfatter Del Skrevet 9. november 2006 Kan sikkert løse det med strpos() og substr() ja, men sliter litt med at det ikke klarer å slutte der der skal. Og hvordan skal jeg legge dette inn i en løkke? Er mer en ett vers i bibelen for å si det slik Lenke til kommentar
Peter Skrevet 9. november 2006 Del Skrevet 9. november 2006 (endret) Er folk redd for å bruke regex eller er det en annen grunn? Denne med preg_match_all PHP <?php $text = "@FGamle Testamentet@IFørste Mosebok@KKapittel 1@AGud skaper verden.@V1 @BI begynnelsen skapte Gud himmelen og jorden. @C2:4. Sal 33:6. 102:26. Jes 45:18. Jer 32:17. Joh 1:1,3. Kol 1:16. Heb 11:3."; $arr = array(); preg_match_all( @([^@]*), $text, $arr ); var_dum( $arr ); ?> [0]=> array [0]=>@FGamle Testamentet [1]=>@IFørste Mosebok [2]=>@KKapittel 1 [3]=>@AGud skaper verden. [4]=>@V1 [5]=>@BI begynnelsen skapte Gud himmelen og jorden. [6]=>@C2:4. Sal 33:6. 102:26. Jes 45:18. Jer 32:17. Joh 1:1,3. Kol 1:16. Heb 11:3. [1]=> array [0]=>FGamle Testamentet [1]=>IFørste Mosebok [2]=>KKapittel 1 [3]=>AGud skaper verden. [4]=>V1 [5]=>BI begynnelsen skapte Gud himmelen og jorden. [6]=>C2:4. Sal 33:6. 102:26. Jes 45:18. Jer 32:17. Joh 1:1,3. Kol 1:16. Heb 11:3. Endret 9. november 2006 av Nazgul Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå