检查命名的 XML 站点地图节点是否存在


check if named xml sitemap node exists

我正在通过查询数据库并添加url节点来使用php生成xml站点地图。数据库中有一些条目会产生重复的 url,所以想在添加下一个节点之前检查我的 xml 字符串。

这个过程是...

new SimpleXMLElement
$url = $xml->addChild('url');
$url->addChild('loc', 'http://www.example.com/url');
$url->addChild('lastmod', $date);
$url->addChild('changefreq', "Daily");
$xml->asXML("sitemap.xml");

使用 xpath 来检查:

$pageurl = "http://www.test.com/test"; // URL to check
$xml = simplexml_load_string($x);
$set = $xml->xpath("//url[loc = '$pageurl']");

现在检查数组$set是否包含元素...

if (! isset($set[0])) {
    echo "$pageurl not found - add it.";
}

查看它的工作原理:https://eval.in/134107