Создание атрибута в домдокументе

Я должен сделать этот тип XML:

<?xml version="1.0" encoding="UTF-8"?>

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

<url>

<loc>http://www.example.com/</loc>

<lastmod>2005-01-01</lastmod>

<changefreq>monthly</changefreq>

<priority>0.8</priority>

</url>

<url>

<loc>http://www.example.com/catalog?item=12&amp;desc=vacation_hawaii</loc>

<changefreq>weekly</changefreq>

</url>
</urlset>

Для которого я написал этот код,

 $dom = new domDocument('1.0', 'utf-8');
$dom->formatOutput = true;
$rootElement = $dom->createElementNS('http://www.sitemaps.org/schemas/sitemap/0.9', 'urlset');
$sxe = simplexml_import_dom( $dom );
$urlMain = $sxe->addChild("url");
$loc = $urlMain->addChild("loc","http://www.example.com");
$lastmod = $urlMain->addChild("lastmod","$date");
$changefreq = $urlMain->addChild("changefreq","daily");
$priority = $urlMain->addChild("priority","1");

Все работает отлично, но по какой-то причине xmlns для urlset не добавляется. Что здесь может быть не так?
Любое предложение будет полезно.

0

Решение

Вам необходимо добавить корневой элемент в документ перед преобразованием в simplexml:

$rootElement = $dom->createElementNS('http://www.sitemaps.org/schemas/sitemap/0.9', 'urlset');
$dom->appendChild($rootElement);
$sxe = simplexml_import_dom( $dom );
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]