在domdocument中创建属性

时间:2014-10-08 19:51:45

标签: php dom domdocument

我必须制作这种类型的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");

一切都运行正常,但由于某种原因,{urgset} xmlns没有被添加。这可能有什么问题? 任何建议都会有所帮助。

1 个答案:

答案 0 :(得分:1)

在转换为simplexml之前,您需要将根元素附加到文档:

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