Sie werden wahrscheinlich dazu verleitet, zu denken, dass CDATA fehlt, indem Sie print_r
oder eine der anderen "normalen" PHP-Debugfunktionen verwenden. Diese können den vollständigen Inhalt eines SimpleXML-Objekts nicht sehen, da es kein "echtes" PHP-Objekt ist.
Wenn Sie echo $nodes[0]->Description
ausführen, werden Sie feststellen, dass Ihr CDATA in Ordnung ist. Was passiert, ist, dass PHP weiß, dass echo
eine Zeichenkette erwartet, also fragt SimpleXML nach einer; SimpleXML antwortet mit all dem Inhalt der Zeichenfolge, einschließlich CDATA.
Um den vollständigen String-Inhalt zuverlässig zu erhalten, teilen Sie PHP einfach mit, dass Sie eine Zeichenfolge mit dem Operator (string)
cast, z. $description = (string)$nodes[0]->Description
.
Um SimpleXML-Objekte zu debuggen und sich nicht von solchen Macken täuschen zu lassen, verwenden Sie eine dedizierte Debugging-Funktion, beispielsweise: Ссылка