Gå til innhold

analysere tekst, og gjøre om til XML


Anbefalte innlegg

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
Videoannonse
Annonse

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

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 av Nazgul
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...