使用sitemap()
视图助手输出Zend Navigation时,出现以下错误:
Sitemap is invalid according to XML Schema at "http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"
启用验证:
$this->navigation()->setUseSchemaValidation(true)->setFormatOutput(true);
我的站点地图如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://example.com/index/index/slug/news</loc>
</url>
<url>
<loc>http://example.com/strona/test-page</loc>
</url>
<url>
<loc>http://example.com/strona/test-submenu</loc>
</url>
<url>
<loc>http://example.com/strona/subpage-submenu</loc>
</url>
<url>
<loc>http://example.com/strona/test-submenu-1</loc>
</url>
<url>
<loc>http://example.com/feed/list</loc>
</url>
<url>
<loc>http://example.com/default/sitemap</loc>
</url>
</urlset>
答案 0 :(得分:3)
前提条件:
在启用allow_url_fopen之前,DomDocument :: schemaValidate($ path)将无效
关于站点地图:
来自http://www.sitemaps.org/protocol.php#validating
为了验证您的Sitemap或 针对架构的站点地图索引文件, XML文件需要额外的 标题如下所示。
<?xml version='1.0' encoding='UTF-8'?>
<urlset xmlns:xsi="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"
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
...
</url>
</urlset>
要将这些标头添加到XML,首先需要通过$domDoc = $this->sitemap()->getDomSitemap()
检索DomDocument
而是添加其他标题,最后是echo $domDoc->saveXml()
对你来说,在你的视图中做这么多看起来并不好看,也许一个额外的ViewHelper子类Zend_View_Helper_Navigation_Sitemap可能适合你。
不幸的是我还没有使用过DomDocument,所以我无法帮助设置命名空间属性,也许this post可以帮助你。