XML-файл с разной глубиной «детей» в семье должен быть проанализирован, чтобы собрать всех потомков в список.
Как показано в примере кода на https://3v4l.org/GV0UV, который включает в себя XML, код, который обрабатывает XML, является следующим, где $buffer
содержит XML:
$xml = new SimpleXMLIterator($buffer);
$recursive = new RecursiveIteratorIterator($xml);
foreach ($recursive as $tag => $object) {
if ($tag !== 'Name') {
continue;
}
echo "-> " . $object ;
}
Вывод такой:
-> 1David-> 1Samuel-> 1Fred-> 1John-> 1Frank-> 1Robert-> 2David-> 2Samuel-> 2Fred-> 2John-> 3David-> 3Samuel-> 3Fred-> 3John-> 3Frank
Мне нужно разделить это на семьи («1David» - это человек из другой семьи, нежели «2David»; в реальном мире предполагаются разные имена для каждого члена семьи).
Требуемый вывод должен быть таким:
-> 1David-> 1Samuel-> 1Fred-> 1John-> 1Frank-> 1Robert
-> 2David-> 2Samuel-> 2Fred-> 2John
-> 3David-> 3Samuel-> 3Fred-> 3John-> 3Frank
Таким образом, RecursiveIteratorIterator
находит все значения 'name' в XML, но вывод должен быть разделен на 'семьи'.
Как разделить извлечение имен в семейства?
(Примечание: мой предыдущий вопрос здесь Итерация по многоуровневому XML-файлу ; было предложеночто я начинаю новый вопрос.)