Hallo und guten Tag!
Auch ich hab so meine Problemchen mit SimpleXML. Genauer gesagt nur eins: das Schreiben von Namespaces-enthaltenden Elementen der Art:
Hier mal ein XML-Auszug, wie gesagt, einlesen klappt, ausgeben von Elementen mit Namespaces nicht...
Hier mein PHP-Code...
...Probleme gibt's wie halt ab dem <:media - Zeugs, habe da schon allerhand ausprobiert, aber meine Ziel-Ausgabe (siehe XML-Code) erreiche ich nicht. Beim momentanen Code wird vor der Ausgabe der <:media Elemente abgebrochen.
Die Dokumentationslage für mein Problem (SimpleXML + Namespaces) sieht leider ziemlich schlecht aus -- ich bin bisher auf 2 Ansätze gestossen, beide haben mir aber nicht geholfen.
Hoffe das war nicht zu viel und ich hab nix vergessen. Freue mich auf Vorschläge!
Gruss,
T
Auch ich hab so meine Problemchen mit SimpleXML. Genauer gesagt nur eins: das Schreiben von Namespaces-enthaltenden Elementen der Art:
Code:
... <media:group> <media:credit role="author" ... ></media:credit> ... </media:group> ...
HTML-Code:
<?xml version="1.0"?> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/> <entry> <title>some title</title> <link rel="alternate" href="#"/> <summary>This is a ...</summary> <media:group> <media:credit role="author">some author...</media:credit> <media:content url="../video/video1.mp4" type="video/mp4"/> <media:thumbnail url="http://www.example.com/preview1.jpg"/> </media:group> </entry> ...
PHP-Code:
$xml = simplexml_load_file($XMLfile);
<!-- ... bisschen Code ... -->
$newEntry = $xml->addChild("entry");
$newEntry ->addChild("title", htmlspecialchars(utf8_encode($title)));
$link = $xml->entry[$i]->addChild("link");
$link ->addAttribute("rel", "alternate");
$link ->addAttribute("href", "#");
$newEntry ->addChild("summary", htmlspecialchars(utf8_encode($summary)));
<!-- bis hierher funktioniert's -->
$mediaGroup = $xml->entry[$i]->addChild("media:group", NULL, "http://search.yahoo.com/mrss/");
$mediaCredit = $xml->entry[$i]->group->addChild("media:credit", "GTV - The German Media Experts.",
"http://search.yahoo.com/mrss/");
$mediaCredit ->addAttribute("role", "author");
$mediaContent = $xml->entry[$i]->group->addChild("media:content", NULL, "http://search.yahoo.com
/mrss/");
$mediaContent ->addAttribute("url", "../video/" . htmlspecialchars(utf8_encode($video_name)));
$mediaContent ->addAttribute("type", "video/x-flv");
$mediaThumbnail = $xml->entry[$i]->group->addChild("media:thumbnail", NULL, "http://search.yahoo.com
/mrss/");
$mediaThumbnail ->addAttribute("url", "../video/" . htmlspecialchars(utf8_encode($preview_name)));
$xml->asXML($XMLfile);
Die Dokumentationslage für mein Problem (SimpleXML + Namespaces) sieht leider ziemlich schlecht aus -- ich bin bisher auf 2 Ansätze gestossen, beide haben mir aber nicht geholfen.
Hoffe das war nicht zu viel und ich hab nix vergessen. Freue mich auf Vorschläge!
Gruss,
T
Kommentar