问题
I want to display my sitemap in proper xml format but it displays in one line:
http://www.example.com/home 1.00 http://www.example.com/about 0.50 http://www.example.com/login 0.20 http://www. etc
not:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
<url>
<loc>http://www.example.com/home</loc>
<priority>1.00</priority>
</url>
<url>
<loc>http://www.example.com/about</loc>
<priority>0.50</priority>
</url>
etc.
My code in SitemapController:
<?php
class SitemapController extends Zend_Controller_Action
{
public function sitemapAction()
{
$this->_helper->layout->disableLayout();
$this->getResponse()->setHeader('Content-Type', 'text/xml; charset=utf-8');
}
}
Code in sitemap.phtml:
<?php echo '<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
<url>
<loc>http://www.example.com/home</loc>
<priority>1.00</priority>
</url>
<url> etc...
In my routes.ini:
resources.router.routes.sitemap.type = "Zend_Controller_Router_Route"
resources.router.routes.sitemap.route = "/sitemap.xml"
resources.router.routes.sitemap.defaults.module = "default"
resources.router.routes.sitemap.defaults.controller = "sitemap"
resources.router.routes.sitemap.defaults.action = "sitemap"
Based on earlier questions the disableLayout() in controller should have done it but has no effect on actual xml layout in view.
回答1:
Since you're setting the correct content-type, it sounds like this is just down to how your browser is choosing to render XML data. Depending on what browser you're using, you might want to see if you can find an extension that will give you better XML formatting.
来源:https://stackoverflow.com/questions/19200160/xml-sitemap-not-displaying-in-xml-format