Есть XML код вида:
<response>
<identify res="OK"/>
<rubricator>
<rubric id="1" parentId="0">Автомобили</rubric>
<rubric id="2" parentId="1">Автозапчасти и аксессуары</rubric>
<rubric id="3" parentId="2">Автозапчасти для грузовых автомобилей</rubric>
<rubric id="4" parentId="2">Автозапчасти для легковых автомобилей</rubric>
</rubricator>
</response>
Нужно преобразовать его в массив, с учетом всех id и parentid, для дальнейшей привязки.
Давным-давно нашел какую-то функцию, которая это всё дело в массив преобразовывала, но, блин забыл ее. Задолбался уже гуглить
Спустя 2 минуты, 35 секунд (9.08.2010 - 08:55) Romms написал(а):
Спустя 19 минут, 14 секунд (9.08.2010 - 09:14) linker написал(а):
Romms
Тут не будет ему рая. Парсить XML регулярками - это нонсенс.
Тут не будет ему рая. Парсить XML регулярками - это нонсенс.
$Xml = new DomDocument();
$Xml->load('file.xml');
$XPath = new DOMXPath($Xml);
$RubricNodes = $XPath->query('//rubricator/rubric');
$RubricArray = array();
foreach($RubricNodes as $RubricNode)
{
$ParentId = (integer)$RubricNode->getAttribute('parentid');
$Id = (integer)$RubricNode->getAttribute('id');
$Value = $RubricNode->nodeValue;
// Начало положено, теперь здесь сам строишь массив
}
Спустя 1 час, 48 минут, 50 секунд (9.08.2010 - 11:03) phant написал(а):
Всё супер! Большое спасибо!