Avatar billede tamen Nybegynder
20. november 2004 - 21:54 Der er 2 kommentarer og
1 løsning

Få fat i blokke af kode med regular expressions

Hvis jeg har en xml fil med en masse informationer i som jeg skal have delt ud i blokke der er omkranset med <dict> tags. Hvad er så koden for det?

preg_match_all er så vidt jeg ved den rette kode. Informationerne ligger noget der ligner dette format, og mange efter hinanden:

<dict>
<key>Navn</key><string>Mogens</string>
<key>Alder</key><integer>18</integer>
<key>Eftertavn</key><string>Mogensen</string>
</dict>

Det jeg gerne vil er at få fat i det mellem <dict> tagsne, men jeg er ikke nok inde i regexp til at kunne få fat i det. (.*) matcher jo ikke linieskift, og så er jeg stortset stået af :)
Avatar billede Slettet bruger
20. november 2004 - 23:27 #1
Sæt en option s på din søgestreng. Så matcher .* også på linieskift.

http://dk.php.net/manual/en/reference.pcre.pattern.modifiers.php
Avatar billede bojo Nybegynder
20. november 2004 - 23:35 #2
<?php

$test = <<<EOD
<dict>
<key>Navn</key><string>Mogens</string>
<key>Alder</key><integer>18</integer>
<key>Eftertavn</key><string>Mogensen</string>
</dict>
EOD;

preg_match_all( "|<dict>(.*)<\/dict>|s", $test, $res );
echo htmlentities( $res[1][0] );
?>
Avatar billede tamen Nybegynder
21. november 2004 - 22:18 #3
Tak for det sandbox :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester