PHP и SIMOLEXML удалить выборочные записи

mailmoney

Новичок
Здравствуйте. Есть обычный YML-файл.

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>

Есть массив значений, например $a=array(1,3);
Нужно оставить только те 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');

Результат - удаляет все офферы. Но если я поставлю ${'dom2'.$i}=dom_import_simplexml($offer); не в ELSE а выше, т.е. условие если присутствует -удалить его - работает, удаляет все нужные мне значения из файла.
Я не знаю или глюк, или еще что-то. И понимаю что код не совсем корректный, имена переменных создаю, но не нашел других вариантов. Может подскажете?
 
Всё. Спасибо, решил проблему. Сделал исключение массивов (т.е. получил элементы которые необходимо удалить) и сделал тоже самое что выше написал
 
Сверху