У меня есть сайт, который просматривает базу данных сайтов. Я пытаюсь добавить URL в sitemap.xml всякий раз, когда поиск возвращает один результат. Я знаю, что мне нужно использовать simplexml, но я не уверен, как это реализовать.
Псевдо код
if (correct results) {
$theDate = date('c',time());
$theUrl = "http://myurl.com/?r=asdfasdf1234"appendtositemap($theDate, $theUrl);
}
Текущий sitemap.xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://example.com/</loc>
<lastmod>2013-04-08T20:38:15+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
</urlset>
Сначала вы захотите проанализировать, что у вас уже есть, если вы добавляете к нему:
$sitemap = simplexml_load_string(YOUR_ORIGINAL_XML_HERE_AS_A_STRING);
После этого, скажем, вы хотите создать новый узел URL. Вы можете сделать это с помощью addChild
функция на любом SimpleXMLElement
(это создает дочерний узел XML или структуру вложенного узла, которую вы видите выше):
$myNewUri = $sitemap->addChild("url");
$myNewUri->addChild("loc", "http://www.google.com/");
$myNewUri->addChild("lastmod", "2015-01-07T20:50:10+00:00");
$myNewUri->addChild("changefreq", "daily");
$myNewUri->addChild("priority", "2.0");
Здесь всегда требуется первое свойство; это имя узла XML, который вы добавляете. Второй параметр является необязательным, но он указывает текстовое значение, добавляемое в новый узел. Сделайте это для каждой ссылки, и вы будете продолжать добавлять узлы
Наконец, вы хотите распечатать его, нет? Для этого используйте:
echo $sitemap->asXml();
Если вы хотите сохранить его в файл:
$sitemap->asXml("sitemap.xml");
Других решений пока нет …