2012-10-02 2 views
0

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-файл, являющийся одной строкой и не обладающий видимыми для меня тегами, не соответствует мне. Я хочу знать, почему это делается

ответ

0

У меня такая же проблема, и я думаю, что нашел решение. Я думаю, что у Вас есть пространство перед вашим HTML код/​​XML

<-- space here--><?xml version="1.0" encoding="UTF-8" ?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> 

вы можете попытаться найти в вашем sitemap_controller.php, если у Вас есть место после того, как PHP закрывающий тег

?>__space here__ 
Смежные вопросы