Объединение xml

программирование php xml

Есть две xml, которую я получаю с сайта, первая имеет вот такую структуру:

<retval></retval>
<id_group></id_group>
<name_group></name_group>
<cnt_goods></cnt_goods>
<order></order>
<rows>
<row id=>
<id_goods></id_goods>
<name_goods></name_goods>
<price></price>
<currency></currency>
</row>
</rows>

Вторая, такую:

<retval></retval>
<id_goods></id_goods>
<name_goods></name_goods>
<nal></nal>
<preorder></preorder>
<price_goods>
<wmz></wmz>
<wmr></wmr>
<wme></wme>
<wmu></wmu>
<pcr></pcr>
</price_goods>
<info>
<img></img>
<genre></genre>
<izdatel></izdatel>
<reliz></reliz>
<language></language>
<system></system>
<youtube></youtube>
<platform></platform>
<type></type>
<activation></activation>
<description></description>
<add_desc></add_desc>
</info>

НО, значения второй формируются от полученного значения первой(параметр - "id_goods")

Как в одном цикле вывести значения двух xml?

Делал так:


1) Получаю xml:

<?php
class STEAMBUY {
public function GetGoods($id_goods) {
$id_goods = (int) trim($id_goods);
$url = 'http://steambuy.com/xml/?request=get_goods&id_good='.$id_goods;
$data = simplexml_load_file($url);
return $data;
}


public function GetList($id_group, $curr = 'RUR', $order = 'name') {
$id_group = (int) trim($id_group);
$url = 'http://steambuy.com/xml/?request=get_list&id_group='.$id_group.'&curr='.$curr.'&order='.$order;
$data = simplexml_load_file($url);
return $data;
}
}
?>

2) Обрабатываю:

$xml = new STEAMBUY();
$id_group = empty($_GET['idn']) ? $id_group : (int) trim($_GET['idn']);
$url = 'index.php?idn='.$id_group;
$Orders = $xml->GetList($id_group, $curr);


3) Вывожу:

if ($Orders->retval == 1)
echo 'Ошибка';
else {
foreach ($Orders->rows->row AS $Order) {
$infos = $xml->GetGoods($Order->id_goods); //Засовываю значение id_goods во вторую xml
//Вывожу значение второй
echo'<img src="'.$infos->info->img.'" width="178px" height="75px">
<p>'.$Order->name_goods.'</p>'; //Вывожу значение первой
}
}


Но выводится это всё очень медленно. Если из цикла убрать вот это: $infos = $xml->GetGoods($Order->id_goods); ", то всё работает быстро(значения первой xml выводятся быстро). Как быстро вывести значения второй xml?
Ответы:
public function GetGoods($id_goods)
...
$url = 'http://steambuy.com/xml/?request=get_goods&id_good='.$id_goods;
$data = simplexml_load_file($url);


10 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.