Как удалить элементы из XML-файла через PHP?

191
10 октября 2021, 15:20

Как удалить элементы из XML-файла через PHP?

вот сам файл

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<html/>
<url>
<loc>http://my-beybi.ru/index.php?a=track&id=41</loc>
<lastmod>2019-10-29T21:07:05+03:00</lastmod>
<changefreq>weekly</changefreq>
</url>
<url>
<loc>http://my-beybi.ru/index.php?a=track&id=42</loc>
<lastmod>2019-10-29T21:08:00+03:00</lastmod>
<changefreq>weekly</changefreq>
</url>
<url>
<loc>http://my-beybi.ru/index.php?a=track&id=43</loc>
<lastmod>2019-10-29T22:00:06+03:00</lastmod>
<changefreq>weekly</changefreq>
</url>
<url>
<loc>http://my-beybi.ru/index.php?a=track&id=44</loc>
<lastmod>2019-10-30T00:39:54+03:00</lastmod>
<changefreq>weekly</changefreq>
</url>
<url>
<loc>
http://my-beybi.ru/index.php?a=track&id=45&name=gug_mkrtchyan_-_mam_jan_2019
</loc>
<lastmod>2019-10-30T09:16:32+03:00</lastmod>
<changefreq>weekly</changefreq>
</url>
</urlset>

Требуется удалить эту запись:

<url>
<loc>http://my-beybi.ru/index.php?a=track&id=41</loc>
<lastmod>2019-10-29T21:07:05+03:00</lastmod>
<changefreq>weekly</changefreq>
</url>
Answer 1
<?php
$file2 = file('klose.xml', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES );
$rep='<url><loc>http://my-beybi.ru/index.php?a=track&id=41</loc><lastmod>2019-10-29T21:07:05+03:00</lastmod><changefreq>weekly</changefreq></url>';
$data=str_replace($rep, '', $file2);
file_put_contents('nol.xml', $data);
Answer 2
<?php
$document = new DOMDocument();
$document->load('0.xml');
$documentElement = $document->documentElement;
$urls = $documentElement->getElementsByTagName('url');
$nodeToRemove = null;
foreach ($urls as $url) {
    $attrValue = $url->getAttribute('loc');
    if ($url->getElementsByTagName('loc')->item(0)->nodeValue === 'http://my-beybi.ru/index.php?a=track&id=41') {
        $nodeToRemove = $url;
    }
}
if ($nodeToRemove !== null) {
    $documentElement->removeChild($nodeToRemove);
}
file_put_contents('0.xml', $document->saveXML());
READ ALSO
Fatal error: Uncaught Error: Class &#39;MatthiasMullie\Minify\CSS&#39; при развертывании проекта ocstore на open server

Fatal error: Uncaught Error: Class 'MatthiasMullie\Minify\CSS' при развертывании проекта ocstore на open server

В общем пишет что нет класса CSSphp хотя он есть и подключен вот так

103
Отправка двух форм одной кнопкой

Отправка двух форм одной кнопкой

Может кто подскажет как отправить две формы одной кнопкой SubmitНадо, чтобы после заполнения формы пользователем, они отправлялись на почту...

186
Как подключить код к шаблону Smarty - CS-Cart?

Как подключить код к шаблону Smarty - CS-Cart?

Как подключить код к шаблону (*tpl) smarty в cs-cart:

101
Correct the classpath of your application so that it contains a single, compatible version of javax.persistence.PersistenceContext

Correct the classpath of your application so that it contains a single, compatible version of javax.persistence.PersistenceContext

Можно, пожалуйста, пошагово, а то не совсем понимаю как сделать

401