Matze: XHTML -> XML mit simplexml klappt nicht

Beitrag lesen

Hallo!

Also ich habe jetzt Folgendes versucht:

Zunächst die Abfrage der Datei von der zweiten Domain mit den curl-Funktionen.

  
 // neuen curl-Handler erzeugen $ch  
 $ch = curl_init();  
  
 // setze die URL - htaccess geschütztes Verzeichnis  
 curl_setopt($ch, CURLOPT_URL, "http://www.domain.tld/admin/index.php");  
  
 // Authentifizierung senden  
 $user = "username";  
 $pwd = "password";  
 curl_setopt($ch, CURLOPT_HTTPAUTH, 'CURLAUTH_ANY');  
 curl_setopt($ch, CURLOPT_USERPWD, "$user:$pwd");  
  
 // Daten als String senden, nicht ausgeben  
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
  
 // Daten als String an $content übergeben  
 $content = curl_exec($ch);  
  
 // curl-Handler schließen  
 curl_close($ch);  

Der Inhalt der Datei von der zweiten Domain steht jetzt also in $content.
So weit so gut.

Jetzt der erste Versuch das Ganze zu verarbeiten.

  
// sollte mir ein SimpleXMLElement geben  
$xml = simplexml_load_file($content);  
print_r($xml);  
  
// stattdessen  
/* simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name... */  
  
// einen Fehler mit einem Auszug der ersten Zeilen des Quelltextes (Inhalt von $content)  

Jetzt der zweite Versuch:

  
// sollte mir auch ein SimpleXMLElement geben  
$xml = simplexml_load_string($content);  
print_r($xml);  
  
// stattdessen Fehler bei kodierten Umlauten (ich denk wegen dem &-Zeichen) z.B.  
/* Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 6: parser error : Entity 'uuml' not defined in... */  

Jetzt der dritte und bisher letzte Versuch:

  
// zerstört mir erwartungsgemäß auch Zeichen die ich für XML benötige  
$xml = simplexml_load_string(htmlpecialchars($content));  
print_r($xml);  
  
// ergibt  
/* simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : Start tag expected, '<' not found in... */  

Gut, das letzte Ergebnis hatte ich erwartet, aber ich komm einfach nicht drauf was ich falsch mache. Ich glaube bin schon auf einem ganz guten Weg, scheitere aber auf der Zielgeraden.

Könnte mich vielleicht jemand anstossen und mir einen Tipp geben wo mein Denkfehler liegt?

Danke und Grüße, Matze