Имеется огромный XML файл со следующей структурой:
<?xml version="1.0" encoding="UTF-8"?>
<Catalog>
<Category>
<Name>Cat 1</Name>
<Site>...</Site>
<Site>...</Site>
<Site>...</Site>
</Category>
<Category>
<Name>Cat 2</Name>
<Site>...</Site>
<Site>...</Site>
<Site>...</Site>
</Category>
<Category>
<Name>Cat 3</Name>
<Site>...</Site>
<Site>...</Site>
<Site>...</Site>
</Category>
</Catalog>
Можно ли его разделить с помощью PHP на несколько файлов так, чтобы в каждом файле сохранялась одна категория?
Например так:
cat_1.php<?xml version="1.0" encoding="UTF-8"?>
<Catalog>
<Category>
<Name>Cat 1</Name>
<Site>...</Site>
<Site>...</Site>
<Site>...</Site>
</Category>
</Catalog>
cat_2.php<?xml version="1.0" encoding="UTF-8"?>
<Catalog>
<Category>
<Name>Cat 2</Name>
<Site>...</Site>
<Site>...</Site>
<Site>...</Site>
</Category>
</Catalog>
cat_3.php<?xml version="1.0" encoding="UTF-8"?>
<Catalog>
<Category>
<Name>Cat 3</Name>
<Site>...</Site>
<Site>...</Site>
<Site>...</Site>
</Category>
</Catalog>
Получаем XML файл
$url = 'https://site.ru/file.xml';
$fp = fopen("file.xml", "w");
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_FILE, $fp);
$res = curl_exec($ch);
curl_close($ch);
//var_dump($res);
$file = 'file.xml'; // файл XML
$read = simplexml_load_file($file); // получаем объект класса
$xml = $read->Category; // $xml - объект-массив, вложенные теги - его свойства;
$count = count($xml); // кол-во элементов массива
Название файлам брать из названия категории
<Name></Name>
, чтобы каждый раз конкретные файлы отвечали за конкретные категории.
Подскажите можно ли реализовать и как?
Спасибо!