使用 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);
  • 如何使用 Zend Framework 呈现有效的 xml 站点地图?

  • 我的站点地图如下所示:
    <?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/

    10-10 14:21