Я борюсь с чтением XML-файла с помощью PHP.Получение данных из XML
XML, я хочу использовать здесь: http://www.gdacs.org/xml/rss.xml
Теперь данные я заинтересован в «элемент» узлы.
Я создал следующую функцию, которая получает данные:
$rawData = simplexml_load_string($response_xml_data);
foreach($rawData->channel->item as $value) {
$title = $value->title;
.... это работает отлично.
узлов с «ГРКОМ: хххй» были немного более проблематичны, но я использовал следующий код, который также работает:
$subject = $value->children('dc', true)->subject;
Теперь проблема у меня есть с узлом «ресурсов»,
в основном урезанная версия этого будет выглядеть следующим образом:
<channel>
<item>
<gdacs:resources>
<gdacs:resource id="xx" version="0" source="xx" url="xx" type="xx">
<gdacs:title>xxx</gdacs:title>
</gdacs:resource>
<gdacs:resource id="xx" version="0" source="xx" url="xx" type="xx">
<gdacs:title>xxx</gdacs:title>
</gdacs:resource>
<gdacs:resource id="xx" version="0" source="xx" url="xx" type="xx">
<gdacs:title>xxx</gdacs:title>
</gdacs:resource>
</gdacs:resources>
</item>
</channel>
Как в этом случае я хотел бы получить ресурсы? Я смог получить всегда только первый ресурс и только его название. То, что я хотел бы сделать, это получить все элементы ресурсов, которые имеют «тип» определенного значения и получают их URL.
это работает, но проблема в том, что я получаю все URLs для всех деталей, мне нужно назначить конкретные адреса для конкретных деталей, если вы смотрите во всем файле XML содержит множество «элементов» узлов, и мне нужно получить для каждого «элемента» URL-адреса ресурсов типа «изображение». Предлагаемое решение создает массив всех ресурсов xx-типа во всем XML-файле независимо от того, к какому элементу они относятся к – Jachym
. Создайте SimpleXMLElement для каждого элемента отдельно, затем запустите xpath для каждого из них в цикле. Вы можете использовать 2 оператора xpath -> сначала выбирает все элементы, а следующий - за результатами, используя код выше – DannyZB