У меня есть XML-файл, который выглядит так:
<rss>
<channel>
<title>title</title>
<link>link</link>
<description>description</description>
<item>
<title>title 1</title>
<sort>1</sort>
</item>
<label>
<title>LABEL 1</title>
<sort>2</sort>
</label>
<item>
<title>title 2</title>
<sort>3</sort>
</item>
<label>
<title>LABEL 2</title>
<sort>4</sort>
</label>
<item>
<title>title 3</title>
<sort>5</sort>
</item>
<template>3</template>
</channel>
</rss>
Я использую SimpleXML, и мне нужно сделать foreach в комбинированном списке узлов 'item' и 'label', игнорируя остальные дочерние элементы 'channel'.
Я использовал:
foreach($feed->channel->item as $item) { }
... и ярлыки были добавлены как:
<item type="label">
<title>LABEL 1</title>
</item>
... но получатель файла, который я создаю, ожидает узел для меток.
UPDATE!
Поскольку вопрос не был опубликован (нужен заголовок!), И я сам нашел ответ, а вот что я сделал:
/* Search for items and labels */
$result = $iFeed->xpath('channel/*[name()="item" or name()="label"]');
foreach($result as $item) {
// boom
}