我正在尝试开发一个从我的站点地图文件中删除某些URL节点的功能.这是我到目前为止所拥有的.
$xpath = new DOMXpath($DOMfile);
$elements = $xpath->query("/urlset/url/loc[contains(.,'$pageUrl')]");
echo count($elements);
foreach($elements as $element){
//this is where I want to delete the URL
echo $element;
echo "here".$element->nodeValue;
}
Run Code Online (Sandbox Code Playgroud)
哪个输出"111111".如果$ elements count为'1',我不知道为什么我不能在foreach循环中回显字符串.
到目前为止,我一直在做
$urls = $dom->getElementsByTagName( "url" );
foreach( $urls as $url ){
$locs = $url->getElementsByTagName( "loc" );
$loc = $locs->item(0)->nodeValue;
echo $loc;
if($loc == $fullPageUrl){
$removeUrl = $dom->removeChild($url);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我的站点地图不是那么大,哪种方法可以正常工作.它现在超时,所以我希望使用xpath查询会更快.
在戈登的评论之后,我尝试了:
$xpath = new DOMXpath($DOMfile);
$query = sprintf('/urlset/url[./loc = "%d"]', $pageUrl);
foreach($xpath->query($query) as $element) {
//this is where I want …Run Code Online (Sandbox Code Playgroud)