PHP DomDocument クラスでサイトマップを作成したい。Kohana モデルを使用してデータベースからデータを取得しようとすると、次の内容のエラーが表示されます。
ドキュメントの先頭にない XML 宣言
モデル アクセスでこれらの 2 行を削除すると、すべて正常に動作しますが、何が問題なのですか? URL を作成するには、このデータが必要です。
私はこの機能を使用しています:
public function sitemap()
{
$doc = new DOMDocument();
$doc->formatOutput = true;
$r = $doc->createElementNS("http://www.sitemaps.org/schemas/sitemap/0.9","urlset" );
$r->setAttributeNS('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'
);
$doc->appendChild( $r );
$model = new Data_Model; // THESE TWO LINES CAUSES ERROR
$arrayofdata = $model->get_all();
for($i=0; $i<10; $i++)
{
$b = $doc->createElement( "url" );
$loc = $doc->createElement("loc");
$loc->appendChild($doc->createTextNode('www.example.com'));
$b->appendChild( $loc );
$priority = $doc->createElement( "priority" );
$priority->appendChild(
$doc->createTextNode('1.0')
);
$b->appendChild( $priority );
$r->appendChild( $b );
$changefreq = $doc->createElement( "changefreq" );
$changefreq->appendChild(
$doc->createTextNode('Daily')
);
$b->appendChild( $changefreq );
$lastmod = $doc->createElement( "lastmod" );
$lastmod->appendChild(
$doc->createTextNode(date('Y-m-d'))
);
$b->appendChild( $lastmod );
$r->appendChild( $b );
}
$output = $doc->saveXML();
header("Content-type:text/xml");
echo $output;
}