simplexml — динамически добавлять веб-страницу в sitemap.xml.

У меня есть сайт, который просматривает базу данных сайтов. Я пытаюсь добавить 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>

1

Решение

Сначала вы захотите проанализировать, что у вас уже есть, если вы добавляете к нему:

$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");
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]