1

次のエラーが表示されます。

非オブジェクトでのメンバー関数 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>

そして、私はこれをやっています:

//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);

基本的には、サイト マップに何かを追加するだけです。私はXMLが得意ではありませんでしたが、これで何が間違っているのかわかりません。

4

1 に答える 1

4

これを変更する必要があります:

$urlset = $xml->urlset;
$urls = $urlset->addChild('url');

の中へ:

$urls = $xml->addChild("url");

読み込んだ XML のルート ノードにコンテンツが追加されます。したがって、スクリプトを 1 回実行すると、次の出力が生成されます。

<?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>

出力のフォーマットを変更して、読みやすくしました。追加は、実際には 1 行だけです。

于 2013-09-07T23:16:54.393 に答える