Lieber Matze,
Das umschreiben in ein Array krieg ich wahrscheinlich noch einfach mit den SimpleXML-Funktionen hin.
Ich weiß aber nicht, wie ich die Listen aus dem XHTML extrahieren kann.
wahrscheinlich könnte man mit ein paar regulären Ausdrücken und preg_replace() den relevanten XHTML-Code isolieren, um ihn dann dem XML-Parser (SimpleXML?) zu füttern.
Mein Vorschlag:
1.) Alle inline-Elemente belassen, aber deren Tags entfernen.
$html = preg_replace('~(?s)</?(a|b|br|em|i|q|strong|u)( ?/)?>~', '', $html);
2.) Alternativ-Text bei Bildern erhalten
$html = preg_replace('~(?s)<img .*?alt="([^"]*)"[^>^]*>~', '\\1', $html)
3.) Alle Block-Elemente entfernen, die kein <ol>, <ul> oder <li> sind (aus Deinem Beispiel-Code geht anscheinend hervor, dass <li>-Elemente keine weiteren Block-Elemente enthalten):
$html = preg_replace('~(?s)<(blockquote|center|dl|dt|dd|head|hr|p|table|td|th)>.*?</\\1>~', '', $html);
4.) Prüfen, ob noch weitere unerwünschte Block-Elemente zu entfernen sind (mitsamt ihrem Inhalt, oder dann doch diesen zumindest erhalten?):
... jetzt darfst Du. Denke an <div>-Elemente, und an <body>...
Hoffentlich hilft das etwas weiter?
Liebe Grüße,
Felix Riesterer.
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)