/** * @see Formatter::formatSiteMapIndex() */ public function formatSiteMapIndex(SiteMapIndex $siteMapIndex) { // init and configure XMLWriter $writer = new \XMLWriter(); $writer->openMemory(); $writer->setIndent(true); $writer->startDocument("1.0", "UTF-8"); // start root $writer->startElementNs(null, "sitemapindex", "http://www.sitemaps.org/schemas/sitemap/0.9"); // add all url's entries foreach ($siteMapIndex->getSiteMapEntries() as $siteMapEntry) { if ($siteMapEntry->getUrl() != null) { $writer->startElement("sitemap"); $writer->writeElement("loc", htmlentities($siteMapEntry->getUrl(), null, "UTF-8", true)); if ($siteMapEntry->getLastModification()) { $writer->writeElement("lastmod", $siteMapEntry->getLastModification()->format(\DateTime::W3C)); } $writer->endElement(); } } // close root $writer->endElement(); return $writer->flush(); }
<?php require '../src/SiteMapIndex.php'; require '../src/entries/SiteMapEntry.php'; require '../src/formatter/Formatter.php'; require '../src/formatter/XMLFormatter.php'; use Cyberomulus\SiteMapGenerator\SiteMapIndex; use Cyberomulus\SiteMapGenerator\Entries\SiteMapLEntry; use Cyberomulus\SiteMapGenerator\Formatter\XMLFormatter; $sitemapindex = new SiteMapIndex(); $sitemap1 = new SiteMapLEntry("http://www.test.com/sitemap1.xml", new DateTime(), SiteMapLEntry::CHANGE_FEQUENCE_ALWAYS, "0.5"); $sitemap2 = new SiteMapLEntry("http://www.test.com/sitemap1.xml", new DateTime(), SiteMapLEntry::CHANGE_FEQUENCE_NEVER); $sitemap3 = new SiteMapLEntry("http://www.test.com/sitemap.php?code=3&restet=super", new DateTime(), SiteMapLEntry::CHANGE_FEQUENCE_NEVER); $sitemapindex->addSiteMapEntry($sitemap1); $sitemapindex->addSiteMapEntry($sitemap2); $sitemapindex->addSiteMapEntry($sitemap3); $formatter = new XMLFormatter(); echo "<pre>" . $formatter->formatSiteMapIndex($sitemapindex) . "</pre>";