2016-04-06 9 views
2

Ich versuche, einen RSS-Feed zu erstellen und ein Element istErstellen eines RSS-Element mit Namespace mit SimpleXML in PHP

<content:encoded></content:encoded> 

Aber, wenn ich diesen Code verwenden:

$item->addChild('content:encoded',htmlspecialchars($itemdata->description)); 

ich Dies als Ergebnis:

<encoded> .................. </encoded> 

Ich bekomme nicht den Content-Namespace, und wie könnte ich?

Antwort

2

Wie Sie im documentation sehen können, müssen Sie den Namespace-URI als drittes Argument von addChild() bereitzustellen Element im Namensraum zu schaffen, richtig:

$item->addChild(
     'content:encoded', 
     htmlspecialchars($itemdata->description), 
     'namespace-URI-for-content-prefix-here' 
    ); 

Schnell Demo:

$raw = '<root xmlns:content="mynamespace"></root>'; 
$item = new SimpleXMLElement($raw); 
$item->addChild(
      'content:encoded', 
      'foo bar baz', 
      'mynamespace' 
    ); 
echo $item->asXML(); 

eval.in demo

Ausgang:

<?xml version="1.0"?> 
<root xmlns:content="mynamespace"><content:encoded>foo bar baz</content:encoded></root> 
+0

Vielen Dank! es hat perfekt funktioniert –