Имеется XML файл с таким по типу содержанием
<Catalogue>
<Item>
<ID>0</ID>
<Name>Product name 1</Name>
<AttributeList>
<Attribute Name="Attribute name 1" Value="value 1"/>
<Attribute Name="Attribute name 2" Value="value 2"/>
<Attribute Name="Attribute name 3" Value="value 3"/>
</AttributeList>
</Item>
<Item>
<ID>1</ID>
<Name>Product name 2</Name>
<AttributeList>
<Attribute Name="Attribute name 1" Value="value 1"/>
<Attribute Name="Attribute name 2" Value="value 2"/>
<Attribute Name="Attribute name 3" Value="value 3"/>
</AttributeList>
</Item>
</Catalogue>
С помощью "SimpleXML" прошелся по всем дочерним полям "Item" но никак не смог поместить значения атрибутов в массив products();
<?php
$xml_product_list = simplexml_load_file('xml/katalog.xml');
function getXML($xml_product) {
// Get products
$products = array();
$attributes = array();
foreach ($xml_product->Catalogue->Item as $item) {
foreach ($item->AttributeList as $attribute_list)
$products[] = array(
'id' => (string) $item->ID,
'attributes' => $attribute_list
);
}
var_dump($products);
}
echo '<pre>';
getXML($xml_product_list);
echo '</pre>';
Чтобы не делал, либо ошибки, либо в ячейку атрибуты заносится только значения первого тэга "Attribute", но не все остальные... Каким образом можно занести все значения полей "Attribute" в ячейку массива "attributes" для конкретного "Item"?
Попробуйте так:
foreach ($xml_product->Item as $item) {
foreach ($item->AttributeList as $attribute_list) {
$products[] = array(
'id' => (string)$item->ID,
'attributes' => $attribute_list
);
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Данный код считает максимальную компоненту связностиКак найти их количество? Например,