Liebe RegExperten,
ich habe eine verschachtelte Liste (<ul>), bei der ich das höchste Element in der Element-Hierarchie entfernen möchte. Damit das Ganze nicht zu einfach wird, steckt diese Liste auch noch in einem <div>-Elternelement.
Beispiel-Code:
<div>
<ul class="egal">
<li class="auch egal">Unterliste
<ul>
<li class="ebenso egal">Unter-Unterliste
<ul>
<li class="auch egal">noch mehr Kram...</li>
<li class="wurschd">und noch mehr...</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
So. Nun ist es mir bereits gelungen, das erste öffnende <ul> und das direkt darauffolgende öffnende <li> zu entfernen. Aber am Ende stehen ja nun zwei verwaiste schließende Tags, die auch noch entfernt werden müssen. Hier versagt leider mein Code, denn plötzlich ist alles an Listen-speziefischem HTML-Code weg, bis auf das umgebende <div>...
Hier mein Code:
$liste = preg_replace('~(?is)<ul class=.*?([\t ]*<ul.*)$~', '\\1', $liste);
// erfolgreich: erstes <ul> und <li> ist weg
$liste = preg_replace('~(?is)</li>.*?</ul>.*?(</div.*)$~', '\\1', $liste);
// gelingt nicht: alles von der Liste ist jetzt weg (???)
Mein Error-Log schweigt und ich muss mich wundern, warum so radikal alles entfernt wird. Wer kann mir raten?
Liebe Grüße aus Ellwangen,
Felix Riesterer.
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)