2014-02-11 1 views
0

я получаю следующее сообщение об ошибке, когда я добавить Xmlns к моему XML, написанные с DOMDocumentPHP DOMDocument Запись Карта сайта Проблемы - Uncaught исключение «DOMException»

Фатальная ошибка: Uncaught исключение «DOMException» с сообщением «Ошибка недопустимого символа» в ...

$xml = new DOMDocument("1.0", "UTF-8"); 
$xml_urlset = $xml->createElement('urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"'); 
$xml_url = $xml->createElement("url","this text"); 
$xml_urlset->appendChild($xml_url); 
$xml->appendChild($xml_urlset); 
$xml->formatOutput = true; 
$xml->preserveWhiteSpace = false; 
$xml->save("test.xml"); 

Кроме того, даже если у меня есть formatOutput = правда, я все еще получаю все, что написано, как одну длинную строку:

<urlset>xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"<url>this text</url></urlset> 

Я стараюсь ING установить вещи так что это может быть outputed для URLset

<urlset 
     xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 
      http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> 

Спасибо за любую помощь вы можете дать мне.

ответ

4

Ваш звонок createElement полностью фиктивный. Вы не можете добавлять атрибуты таким образом. Попробуйте следующее:

<?php 
$xml = new DOMDocument("1.0", "UTF-8"); 
$xml_urlset = $xml->createElement('urlset'); 
$xml_urlset->setAttribute('xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9'); 
$xml_urlset->setAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance'); 
$xml_urlset->setAttribute('xsi:schemaLocation', 'http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd'); 
$xml_url = $xml->createElement("url","this text"); 
$xml_urlset->appendChild($xml_url); 
$xml->appendChild($xml_urlset); 
$xml->formatOutput = true; 
$xml->preserveWhiteSpace = false; 
$xml->save("test.xml"); 
?> 
Смежные вопросы