UPDATE Чтобы сделать его более понятным для некоторых о том, что происходит, моя страница НЕ отображает дерево документов (в первый раз, когда я когда-либо видел это). Только одна длинная строка моего содержимого xml БЕЗ любых элементов/тегов xml.не удалось написать xml файл Sitemap в cakephp
Я следовал за this tutorial для создания динамической карты сайта в cakephp. Этот учебник был написан в 2008 году, и я (унаследовал) работал в приложении cakephp 1.3 (я предполагаю, что этот учебник будет действителен для версии 1.3? Я посмотрел на некоторые другие, которые в значительной степени использовали один и тот же код с 2009 и 2010 годов.) Помимо неутешительный факт, что ни один из моих запросов которая производит ничего, мой вывод, когда я перейти к mysite.com/sitemap.xml это:
http://www.site.com/ daily 1.0 http://www.site.com/gulf-coast-finest/3 2012-10-01T19:00:00Z weekly 0.9 http://www.site.com/gulf-coast-finest/4 2012-10-01T19:00:00Z weekly 0.9
когда я просмотра источника "я получаю правильно отформатированный XML (за исключением того, что мне не хватает важных данных), как показано ниже:
<?xml version="1.0" encoding="UTF-8" ?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.site.com/</loc>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<!-- posts-->
<url>
<loc>http://www.site.com/gulf-coast-finest/3</loc>
<lastmod>2012-10-01T19:00:00Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>http://www.site.com/gulf-coast-finest/4</loc>
<lastmod>2012-10-01T19:00:00Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
</urlset>
....
Я рву на себе волосы, задаваясь вопросом, почему нет пробельных или XML-теги, если я v источник. Вот соответствующий код из моего файла маршрутов:
Router::parseExtensions('xml');
Router::connect('/sitemap', array('controller' => 'sitemaps', 'action' => 'index'));
мое приложение/просмотров/файл раскладки/XML/default.ctp:
<?php
header("content-type: text/xml");
echo $this->Xml->header();
echo $content_for_layout;
?>
мое приложение/просмотров/Sitemaps/XML/index.ctp файл:
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc><?php echo Router::url('/',true); ?></loc>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<!-- posts-->
<?php foreach ($static as $s):?>
<url>
<loc><?php echo Router::url('/gulf-coast-finest/'.$s['Article']['Article.link_txt'].'/'.$s['Article']['id'],true); ?></loc>
<lastmod><?php echo $time->toAtom('2012-10-01 19:00:00'); ?></lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<?php endforeach; ?>
</urlset>
и моя, очевидно, завершена перепутались контроллер:
<?php
class SitemapsController extends AppController{
var $name = 'Sitemaps';
var $uses = array('Category', 'Listing', 'Article', 'Location');
var $helpers = array('Time');
var $components = array('RequestHandler');
function beforeFilter() {
//debug logs will destroy xml format, make sure were not in drbug mode
Configure::write ('debug', 0);
}
function index(){
$this->RequestHandler->respondAs('xml');
$this->viewPath .= '/xml';
$this->layoutPath = 'xml';
$a=$this->Article->find('all', array('fields'=>array('Article.id', 'Article.link_txt')));
$this->set('static', $a);
}
}
?>
Очень важная проблема с отсутствующими данными, вероятно, подходит для другого вопроса. XML-файл, являющийся одной строкой и не обладающий видимыми для меня тегами, не соответствует мне. Я хочу знать, почему это делается