В xml есть базовый элемент и дочерние. Как обратиться к дочерним если они имеют одинаковое название?
Всем привет!
Вопрос в теме, а суть в том, что надо скопировать элемент и атрибуты элемента из одного файла в другой. Так вот - элемент 1 создаётся, атрибуты считывам и добавляем, 2 элемент создаётся, атрибуты считываются, но поскольку таких элементов 2 - копируются из первого. Получаются элементы с одинаковыми названиями и атрибутами на выходе.
Как перебрать этот ассоц. массив если ключи одинаковые и обратиться именно к тому, который нужен? К 3, 4, 5...?
вот прочитали store - создали в результирующем xml аналогичный
прочитали его атрибуты (а как прочитать атрибуты именно первого store? я в цикле прохожу по элементам и у меня считываются оба (а в данном случае из 3 элементов атрибуты)) - добавили к store в результирующем файле
прочитали 2 store - создали в р.ф.
прочитали атрибуты - добавили к store 2-му в р.ф.
Это по-логике, а на практике - берётся первый элемент массива с ключом store и его атрибуты переносятся во все store элементы результирующего файла
Сергей Герасимов, дополнил ответ, использую SimpleXMLElement
в $catalog->stores->store хранится текущий элемент, при работе в цикле текущий элемент обновляется на следующий
а в цикле перебираются все по порядку
Александр Бабий, не очень понял что нужно, но можно перед циклом foreach объявить счётчик в который записывать текущую итерацию и уже исходя из этого делать нужные манипуляции с данными.
из первого store можно прочитать атрибуты
так echo (string)$catalog->stores->store['name']
или так echo (string)$catalog->stores->store[0]['name']
Не получается.
Не могли бы Вы рабочий код скинуть (пример)
Вот такой файл file1.xml скопировать поэлементно в файл file2.xml со всеми атрибутами.
Дальше я смог бы транслировать на свою работу ваше решение.