将xmlns属性添加到XML文件。

时间:2014-05-13 06:04:08

标签: php

我想保存名称空间属性' xmlns'在xml doc中。 这是我试过的......

$xml = new DOMDocument();
$xml_index = $xml->createElement("urlset");
$root->appendChild(
$xml->createAttribute('xmlns'))->appendChild(
$xml->createTextNode('http://www.sitemaps.org/schemas/sitemap/0.9'));
for ($i = 0; $i < $count; $i++) {
     $xml_sitemap = $xml->createElement("url");
     $xml_loc = $xml->createElement("loc", 'http://test.com/sitemaps/'.$link[$i]);
     $xml_index->appendChild( $xml_sitemap );
     $xml_sitemap->appendChild( $xml_loc );
}
$xml_index->appendChild( $xml_sitemap );
$xml_sitemap->appendChild( $xml_loc );
$xml->appendChild( $xml_index );
$xml->save('\tmp\test.xml');

有人可以帮帮我吗? 我想要的格式在

之下
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
     <sitemap>
           <loc>http://test.com/sitemaps/urlset_start10000.xml</loc>
     </sitemap>
     <sitemap>
           <loc>http://test.com/sitemaps/urlset_start20000.xml</loc>
     </sitemap>
</sitemapindex>

我得到的输出是,没有xmlns属性。

1 个答案:

答案 0 :(得分:0)

作为documentation状态createElementNS应该完成工作

$dom = new DOMDocument('1.0', 'utf-8');
$element = $dom->createElementNS('http://www.example.com/XFoo', 'xfoo:test', 'This is the root element!');
$dom->appendChild($element);