Как разобрать xml в цикле

335
11 августа 2017, 00:18

Здравствуйте.
У меня такая проблема. Есть xml, часть которого я привожу тут

            <Предложение>
            <Ид>c71767b4-201a-11e7</Ид>
            <Артикул>ББ000002161</Артикул>
            <Наименование>Смеситель тюльпан НЕПТУН </Наименование>
            <БазоваяЕдиница Код="796" НаименованиеПолное="Штука" МеждународноеСокращение="">шт</БазоваяЕдиница>
            <Цены>
                <Цена>
                    <Представление>3 001,2 KZT за шт</Представление>
                    <ИдТипаЦены>e3f0b147</ИдТипаЦены>
                    <ЦенаЗаЕдиницу>3001.2</ЦенаЗаЕдиницу>
                    <Валюта>KZT</Валюта>
                    <Единица>шт</Единица>
                    <Коэффициент>1</Коэффициент>
                </Цена>
                <Цена>
                    <Представление>5 875 KZT за шт</Представление>
                    <ИдТипаЦены>e3f0b146</ИдТипаЦены>       
                    <ЦенаЗаЕдиницу>5875</ЦенаЗаЕдиницу>
                    <Валюта>KZT</Валюта>
                    <Единица>шт</Единица>
                    <Коэффициент>1</Коэффициент>
                </Цена>
                <Цена>
                    <Представление>4 775 KZT за шт</Представление>
                    <ИдТипаЦены>e3f0b14a</ИдТипаЦены>        
                    <ЦенаЗаЕдиницу>4775</ЦенаЗаЕдиницу>
                    <Валюта>KZT</Валюта>
                    <Единица>шт</Единица>
                    <Коэффициент>1</Коэффициент>
                </Цена>
            </Цены>
            <Количество>146</Количество>
        </Предложение>

Я получаю файл с помощью

$xml = simplexml_load_file($dir . $filename);

и нужно его распарсить в цикле, то есть вытащить два из нескольких значений <ЦенаЗаЕдиницу> у которых <ИдТипаЦены> равен определённой переменной.

По идее, надо просто перебрать в цикле $xml_variant->Цены->Цена, проверить в каждом из них <ИдТипаЦены> и вытащить необходимые <ЦенаЗаЕдиницу>

Но foreach ($xml_variant->Цены->Цена as $value) выдаёт ошибку.

Спасибо за помощь!

Answer 1

Попробуй:

foreach ($xml_variant->{Цены}->{Цена} as $value) {
  var_dump($value)
}
READ ALSO
Как подключиться к Mysql openserver c помощью Qt?

Как подключиться к Mysql openserver c помощью Qt?

Здравствуйте, кто нибудь может объяснить как подклк базе Mysql openserver с помощью Qt

405
Создание графика функции с помощью QCustomPlot

Создание графика функции с помощью QCustomPlot

В качестве помощи для рисования графика в Qt Creator была использована QCustomPlot(установлена правильно так как пример скомпилировался)

428
&#39;abs&#39;: ambiguous call to overloaded function: исход компиляции многих Direct3D примеров

'abs': ambiguous call to overloaded function: исход компиляции многих Direct3D примеров

ЗдравствуйтеПри компиляции некоторых примеров из MS DirectX SDK (June 2010) происходит

425