Google サイト マップを動的に生成する簡単なスクリプトの作成に取り組んでいますが、小さな問題があります。Google の通常のサイト マップを表示すると、メインのルート要素内に以下の行が見つかりましたurlset
。
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9
PHP を使用してサイト マップを作成していDOMdocument
ますが、このヘッダーまたはコードをメインの子に追加する方法を知る必要があります。
これは私のコードです:
$doc = new DOMDocument('1.0', 'UTF-8');
$map = $doc->createElement('urlset');
$map = $doc->appendChild($map);
$url = $map->appendChild($doc->createElement('url'));
$url = $map->appendChild($doc->appendChild($url));
$url->appendChild($doc->createElement('loc',$link));
$url->appendChild($doc->createElement('lastmod',$date));
$url->appendChild($doc->createElement('priority',$priority));
$doc->save('sitemap.xml');
コードは正常に動作し、問題なく XML ファイルを生成しますが、検証してサイト マップの有効性を確認しようとすると、このエラーが発生します。
要素 'urlset': 検証ルートに使用できる一致するグローバル宣言がありません または 要素 'urlset' の宣言が見つかりません。
これは、ヘッダーの欠落が原因だと思います。