acidfreak: regex für multiline

Beitrag lesen

ich habe eine datei mit einem mulitline text. sieht ungefähr so aus:

<key>name</key><string>Engelstaub1</string>
<key>secondname</key><string>Im Jahr des Drachen2</string>
<key>uselessdata</key><string>Engelstaub3</string>
<key>uselessdatta2</key><string>Im Jahr des Drachen4</string>
<key> uselessdata 4</key><string>Engelstaub5</string>
<key> uselessdata 5</key><string>Im Jahr des Drachen6</string>

<key>name</key><string>1Engelstaub1</string>
<key>secondname</key><string>1Im Jahr des Drachen2</string>
<key>uselessdata</key><string>1Engelstaub3</string>
<key>uselessdatta2</key><string>1Im Jahr des Drachen4</string>
<key> uselessdata 4</key><string>1Engelstaub5</string>
<key> uselessdata 5</key><string>1Im Jahr des Drachen6</string>

<key>name</key><string>2Engelstaub1</string>
<key>secondname</key><string>2Im Jahr des Drachen2</string>
<key>uselessdata</key><string>2Engelstaub3</string>
<key>uselessdatta2</key><string>2Im Jahr des Drachen4</string>
<key> uselessdata 4</key><string>2Engelstaub5</string>
<key> uselessdata 5</key><string>2Im Jahr des Drachen6</string>

aus diesem Text benötige ich aber in php nur die Felder mit <key>name</key><string>*inhalt</string>
und <key> secondname </key><string>* inhalt </string>

die große frage ist jetzt wie kann ich im Endeffekt alles andere löschen als diese Felder die mehrmals vorkommen nur mit anderem Inhalt im <string>.
hätte schon probiert das ganze mit regex zu durchforsten und die Ergebnisse einfach inne variable zu schreiben das Problem ist nur die expression:
<key>name</key><string>(.*)</string>
ersetzt einfach das (.*) vom ersten <string> des Textes bis zum letzten. was nicht hilfreich ist.
ich hoffe ich habe mich verständlich ausgedrückt. habe auch schon diverse regex Informationen bei mozilla und ähnlichen wikis durchforstet - konnte aber nichts finden.
mein einziger Ansatz währe der Regel (.*) noch etwas beizufügen was zB <string> rausstreicht.

lg
klemens