PHP - Simplexml, чтение файла

323
28 октября 2017, 18:03

Есть xml файл, который я хочу распарсить. Делаю я это так:

$get = file_get_contents('./1c.xml');
$arr = simplexml_load_string($get);
print_r($arr);

Получаю вот такой вывод:

    SimpleXMLElement Object
(
    [Группа] => Array
        (
            [0] => Первая       
        )
)

Хотя у меня файл содержит много элементов, вот чего часть:

<Каталог>
<Группа>Дом
    <Группа>Первая
        <Группа>Классика
            <Группа>Футбол
                <Номенклатура>
                    <Наименование>Футболка</Наименование>
                    <Цена>121</Цена>
                    <ЦенаСоСкидкой>121</ЦенаСоСкидкой>
                    <Цвет>Серый</Цвет>
                    <Размер>44</Размер>
                    <Материал/>
                    <Категория/>
                </Номенклатура>

Т.е. из-за того, что <Группа>Первая вот так записана, скрипт думает, что объект пустой.

Можно ли эту проблему как-то побороть?

Answer 1

Вообще у вас точка входа - Каталог.

Что бы получить "дом" необходимо написать так:

$arr->Группа->xpath("parent::*") 

или так $arr[0]

Получить "Первая"

$arr->Группа

Получить далее

$arr->Группа->Группа

И так далее...

$arr->Группа->Группа->Группа
READ ALSO
Как передать объект simpleXml в метод?

Как передать объект simpleXml в метод?

Имеется код для парсинга XML файла в объектНо проблема в том, что при попытке передать объект simpleXml в метод мне ругается таким образом Only variables...

231
Получить данные из PUT

Получить данные из PUT

В php для получения данных из POST и GET есть соответствующие методы, но как получить данные например из PUT ?

329
Как отсортировать массив и получить на выходе ключи объектов

Как отсортировать массив и получить на выходе ключи объектов

Есть следующий алгоритм, написанный мной на JS:

271