我收到此错误:
调用非对象上的成员函数 addChild()
但 XML 文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<urlset>
<url>
<loc>http://mysite.com/</loc>
<changefreq>weekly</changefreq>
<priority>1.00</priority>
</url>
</urlset>
Run Code Online (Sandbox Code Playgroud)
我正在这样做:
//APPEND TO SITEMAP
$file = '../sitemap.xml';
$xml = simplexml_load_file($file);
$urlset = $xml->urlset;
$urls = $urlset->addChild('url');
$urls->addAttribute("mongoID", $theAuthorUniqueMongoID);
$urls->addChild('loc', 'http://mysite.com/author/'.$authorLink.'/');
$urls->addChild('changefreq', 'monthly');
$urls->addChild('priority', '0.80');
$xml->asXML($file);
Run Code Online (Sandbox Code Playgroud)
我基本上只是在我的站点地图上添加一些内容。我从来都不擅长 XML,但我不确定我在这方面做错了什么。
你应该改变这个:
$urlset = $xml->urlset;
$urls = $urlset->addChild('url');
Run Code Online (Sandbox Code Playgroud)
进入:
$urls = $xml->addChild("url");
Run Code Online (Sandbox Code Playgroud)
它将向您加载的 XML 的根节点添加内容。因此运行该脚本一次会产生以下输出:
<?xml version="1.0" encoding="UTF-8"?>
<urlset>
<url>
<loc>http://mysite.com/</loc>
<changefreq>weekly</changefreq>
<priority>1.00</priority>
</url>
<url mongoID="">
<loc>http://mysite.com/author//</loc>
<changefreq>monthly</changefreq>
<priority>0.80</priority>
</url>
</urlset>
Run Code Online (Sandbox Code Playgroud)
我更改了输出的格式,使其更易于阅读。添加实际上只是一行。