Не удалось создать XML-файл с этим большим URL-адресом

Я хочу генерировать XML с помощью этого следующего кода, но он дает ошибку, поскольку я включаю большой URL-адрес. Даже cdata не работает:

$xml = new SimpleXMLElement('<xml/>'); for ($i = 1; $i <= 8; ++$i) { $track = $xml->addChild('track'); $track->addChild('path', "data["); $track->addChild('title', "<![CDATA[http://r8---sn-5hn7sn7k.googlevideo.com/videoplayback?mt=1417417897&mv=m&ms=au&ip=2001:1af8:4700:a022:1::4ae9&itag=18&initcwndbps=4948750&mm=31&sver=3&id=o-AB1_DFOem6qVMtWki7uWj0CcIevyqEaY_OtwcbRPKZXT&ipbits=0&upn=IFgTkloUxQQ&expire=1417439567&fexp=902522,907259,922247,927622,932404,935694,941004,942810,943909,947209,948124,952302,952605,952901,953912,957103,957105,957201&key=yt5&sparams=dur,id,initcwndbps,ip,ipbits,itag,mm,ms,mv,source,upn,expire&source=youtube&signature=7266EE8B52AAB9E3C6DECBADDD112BDF00E85EFB.362737C47ECAE4D9E25E900E8C24483799B2A8F8&dur=1554.831&title=8+Stunning+Linguistic+Miracles+of+The+Holy+Quran+%7C+Kinetic+Typography]]>"); } Header('Content-type: text/xml'); print($xml->asXML()); 

Вы не можете добавлять разделы CDATA с SimpleXML, только стандартные текстовые узлы. Но даже в этом есть ошибка. Текст не может содержать объекты ( &...; ). Такая же ошибка существует в DOMDocument::createElement и DOMNode::$nodeValue . Однако вы можете создать документ с DOM.

 $dom = new DOMDocument(); $root = $dom->appendChild($dom->createElement('xml')); for ($i = 1; $i <= 8; ++$i) { $track = $root->appendChild($dom->createElement('track')); $track ->appendChild($dom->createElement('path')) ->appendChild($dom->createTextNode('data[')); $track ->appendChild($dom->createElement('title')) ->appendChild($dom->createCDATASection("http://r8---sn-5hn7sn7k.googlevideo.com/videoplayback?mt=1417417897&mv=m&ms=au&ip=2001:1af8:4700:a022:1::4ae9&itag=18&initcwndbps=4948750&mm=31&sver=3&id=o-AB1_DFOem6qVMtWki7uWj0CcIevyqEaY_OtwcbRPKZXT&ipbits=0&upn=IFgTkloUxQQ&expire=1417439567&fexp=902522,907259,922247,927622,932404,935694,941004,942810,943909,947209,948124,952302,952605,952901,953912,957103,957105,957201&key=yt5&sparams=dur,id,initcwndbps,ip,ipbits,itag,mm,ms,mv,source,upn,expire&source=youtube&signature=7266EE8B52AAB9E3C6DECBADDD112BDF00E85EFB.362737C47ECAE4D9E25E900E8C24483799B2A8F8&dur=1554.831&title=8+Stunning+Linguistic+Miracles+of+The+Holy+Quran+%7C+Kinetic+Typography")); } $dom->formatOutput = TRUE; print($dom->saveXML()); 

Вы можете видеть, что документ DOM содержит множество методов для создания разных типов узлов. Узлы имеют некоторые методы для добавления к ним нового узла.

Методы возвращают узлы, чтобы вы могли их вложить.