我想用 PHP DomDocument 类创建站点地图。当我尝试使用 Kohana 模型从数据库中获取数据时,它显示内容错误:
XML 声明不在文档开头
当我通过模型访问删除这两行时 - 一切正常,有什么问题?我需要这些数据来创建我的网址。
我正在使用这个功能:
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;
}