<folder folded="no" >
Der tag wird nicht geschlossen (eventuell nur im posting vergessen).
function characterData($parser, $data) {
global $data;
Hier gibts gröbere Benamsungskonflikte, die zu komplexen Fehlern führen.
function endElement($parser, $name) {
[...]
print $titel;
$titel ist hier nicht definiert.
Mein simpler Vorschlag wäre der folgende (angelehnt an http://www.webmasterbase.com/article/560:
$in_bookmark=false;
function startElement($parser,$name,$attrs) {
global $in_bookmark,$tag,$result;
if ($in_bookmark) {
$tag=$name;
} elseif($name=='BOOKMARK') {
$in_bookmark=true;
$result['icon']=trim($attrs['ICON']);
$result['href']=trim($attrs['HREF']);
}
}
function endElement($parser,$name) {
global $in_bookmark,$result;
if($name=='BOOKMARK') {
$in_bookmark=false;
print_r($result);
// $result=array();
}
}
function characterData($parser,$data) {
global $in_bookmark,$tag,$result;
if($in_bookmark) {
switch($tag) {
case 'TITLE':
$data=trim($data);
if(!empty($data)) {
$result['title']=$data;
}
// break;
}
}
}
Abgesehen davon würde ich an Deiner Stelle überlegen, die Daten folgendermaßen abzulegen oder mich eventuell sogar in RDF (http://www.w3.org/RDF/) einzulesen:
<bookmark>
<icon>www</icon>
<link>http://www.blablabla.de/</link>
<title>Willkommen bei blablabla</title>
</bookmark>