我仍然非常擅长将simpleXML与PHP一起使用。我正在尝试使用simpleXML从站点地图XML文档中删除段。
该文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.test.com/</loc>
<priority>1.0</priority>
</url>
<url>
<loc>http://www.test.com/test.html</loc>
<priority>0.6</priority>
</url>
</urlset>
我想提供一个特定的<loc>
网址,在xml文档中搜索该地址,然后删除包含我正在搜索的网址的父<url>
元素。
以下是我可以使用的代码,但我无法使其工作。
$xml = simplexml_load_file('path-to-my-sitemap.xml');
$addressToRemove = "http://www.test.com/test.html";
$remove = simplexml_load_string("<url><loc>$addressToRemove</loc><priority>0.6</priority></url>");
xml_remove($xml, $remove);
$str = $xml->asXML();
echo $str;
?>
function xml_remove(SimpleXMLElement $xml, SimpleXMLElement $removeFrom) {
$mainDom = dom_import_simplexml($xml);
$removeFromDom = dom_import_simplexml($removeFrom);
$mainDom->removeChild($removeFromDom);
}
运行我的脚本后,应该输出:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.test.com/</loc>
<priority>1.0</priority>
</url>
</urlset>
有谁知道我在这里做错了什么?