使用 sitemap()
View 助手输出 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>
最佳答案
前提:
DomDocument::schemaValidate($path) 在启用 allow_url_fopen 之前不起作用
关于站点地图:
来自 http://www.sitemaps.org/protocol.php#validating
<?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 会帮助你。
关于xml - Zend 框架站点地图验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4631415/