我有一个问题,使用简单的xml PHP函数组成XML站点地图,具有几乎相同的情况,当站点地图标记时,它不起作用:
$xml = simplexml_load_string('<?xml version="1.0" encoding="UTF-8"?><sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"></urlset>');
$sitemap = $xml->addChild("sitemap");
$sitemap->addChild("loc", "http://www.example.com/sitemap-1.xml");
Fatal error: Call to a member function addChild() on boolean
这是可靠的工作:
$xml = simplexml_load_string('<?xml version="1.0" encoding="utf-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"></urlset>');
$url = $xml->addChild("url");
$url->addChild("loc", "http://www.example.com/sitemap-2.xml");
解决方法:
你的问题是由简单的错误引起的.
(你有 – 可能忘了改变 – 从urlset到sitemapindex关闭标签):
$xml = simplexml_load_string('<?xml version="1.0" encoding="UTF-8"?><sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"></urlset>');
正确:
$xml = simplexml_load_string('<?xml version="1.0" encoding="UTF-8"?><sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"></sitemapindex>');