есть XML файл index.xml (~50mb)
<?xml version="1.0" encoding="UTF-8"?>
<yml_catalog date="2017-02-05 17:22">
<shop>
<gifts>
...
</gifts>
<offers>
<value>1</value>
<name>...</name>
</offers>
<offers>
<value>0</value>
<name>...</name>
</offers>
<offers>
<value>1</value>
<name>...</name>
</offers>
<offers>
<value>0</value>
<name>...</name>
</offers>
</shop>
</yml_catalog>
c помощью simplexml
$xml = simplexml_load_file("all.xml");
$results = $xml->xpath('/yml_catalog/shop/offers/offer');
foreach ($results as $offer) {
if($offer->value== '0') {
$node = dom_import_simplexml($offer);
$node->parentNode->removeChild($node);
}
}
$results2 = $xml->xpath('/yml_catalog/shop/offers/offer/value');
foreach ($results2 as $offer2) {
$node2 = dom_import_simplexml($offer2);
$node2->parentNode->removeChild($node2);
}
echo $xml->asXML('value1.xml');
получаю такой вид
<?xml version="1.0" encoding="UTF-8"?>
<yml_catalog date="2017-02-05 17:22">
<shop>
<gifts>
...
</gifts>
<offers>
<value>1</value>
<name>...</name>
</offers>
<offers>
<value>1</value>
<name>...</name>
</offers>
</shop>
</yml_catalog>
но из-за большого файла выводит ошибку памяти. Как переписать все тот же принцып для XMLReader ? В нем не понимаю..
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости