Я создаю сценарий, который принимает содержимое нескольких (~ 13) новостных лент, анализирует данные XML и вставляет записи в базу данных.Поскольку у меня нет никакого контроля над структурой каналов, мне нужно настроить оператор объекта для каждого из них, чтобы углубиться в структуру для получения необходимой информации.
Сценарий работает простохорошо, если целевой узел находится на один шаг ниже корня, но если моя строка содержит второй шаг, он завершается неудачно ('foo' работает, но 'foo-> bar' терпит неудачу).Я пытался экранировать символы и eval (), но мне кажется, что я упускаю что-то явно очевидное.Любая помощь будет принята с благодарностью.
// Roadmaps for xml navigation
$roadmap[1] = "deal"; // works
$roadmap[2] = "channel->item"; // fails
$roadmap[3] = "deals->deal";
$roadmap[4] = "resource";
$roadmap[5] = "object";
$roadmap[6] = "product";
$roadmap[8] = "channel->deal";
$roadmap[13] = "channel->item";
$roadmap[20] = "product";
$xmlSource = $xmlURL[$fID];
$xml=simplexml_load_file($xmlSource) or die(mysql_error());
if (!(empty($xml))) {
foreach($xml->$roadmap[$fID] as $div) {
include('./_'.$incName.'/feedVars.php');
include('./_includes/masterCategory.php.inc');
$test = sqlVendors($vendorName);
} // end foreach
echo $vUpdated." records updated.<br>";
echo $vInserted." records Inserted.<br><br>";
} else {
echo $xmlSource." returned an empty set!";
} // END IF empty $xml result