mailmoney
Новичок
Здравствуйте. Есть обычный YML-файл.
Есть массив значений, например $a=array(1,3);
Нужно оставить только те offer в которых id= элементу массива.
Сделал так:
$offer - массив с элементами.
Результат - удаляет все офферы. Но если я поставлю ${'dom2'.$i}=dom_import_simplexml($offer); не в ELSE а выше, т.е. условие если присутствует -удалить его - работает, удаляет все нужные мне значения из файла.
Я не знаю или глюк, или еще что-то. И понимаю что код не совсем корректный, имена переменных создаю, но не нашел других вариантов. Может подскажете?
PHP:
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE yml_catalog SYSTEM "shops.dtd">
<yml_catalog date="2011-09-05 16:56">
<shop>
<name>B</name>
<company>ООО </company>
<url>http://</url>
<currencies>
<currency id="RUR" rate="1"/>
</currencies>
<categories>**</categories>
<offers>
<offer id="1" available="false">
...
</offer>
<offer id="2" available="false">
...
</offer>
<offer id="3" available="false">
...
</offer>
</offers>
</shop>
Нужно оставить только те offer в которых id= элементу массива.
Сделал так:
$offer - массив с элементами.
PHP:
$xml = simplexml_load_file($file1); // файл с данными xml
foreach ($xml->shop->offers->offer as $offer)
{
if (in_array($offer['id'],$item)){}
else
{
${'dom2'.$i}=dom_import_simplexml($offer);
$i=$i+1;
}
}
for ($s=0;$s<$i;$s++){
${'dom2'.$s}->parentNode->removeChild(${'dom2'.$s});
}
echo $s;
$xml->asXml('updated.xml');
Я не знаю или глюк, или еще что-то. И понимаю что код не совсем корректный, имена переменных создаю, но не нашел других вариантов. Может подскажете?