我有一个网站搜索网站数据库。每当搜索返回单个结果时,我都会尝试将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>
答案 0 :(得分:2)
如果你正在添加它,你首先想要解析你已经拥有的东西:
$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");