Я создаю карту сайта в XML, она хорошо работает с одной отображаемой записью, но при включении 1+ записей выдает ошибку:
Ошибка синтаксического анализа XML: нежелательная после элемента документа
Который показывает этот код здесь:
<?xml version="1.0" encoding="UTF-8"?> <url><loc>http://www.mywebsite.com/page/1</loc><changefreq>daily</changefreq><priority>0.6</priority></url> <url><loc>http://www.mywebsite.com/page/2</loc><changefreq>daily</changefreq><priority>0.6</priority></url>
Мой код:
$xml = new DOMDocument('1.0', 'UTF-8'); for($i = 0; $i < 2; $i++) { $url = $xml->createElement('url'); $xml->appendChild($url); $website_url = 'http://www.mywebsite.com/page/' . $i; $loc = $xml->createElement('loc', $website_url); $url->appendChild($loc); $change = $xml->createElement('changefreq', 'daily'); $url->appendChild($change); $priority = $xml->createElement('priority', '0.6'); $url->appendChild($priority); } header('Content-type: text/xml'); echo $xml->saveXML();
Почему выдается такой вид ошибки, когда XML кажется мне действительным
По крайней мере, в вашем примере у вас есть два корневых узла (<url>), так как это не разрешено в xml, вторым является junk after document element.
<url>
junk after document element
Вам не хватает корневого узла <urlset>, см .: http://www.sitemaps.org/protocol.php
<urlset>