MODX XML Import
Приветствую, есть xml файл. Требуется брать из него значения и по ним создавать новую страницу в modx. Не могу понять, как это реализовать
продажа
<property-type>жилая</property-type>
квартира
<creation-date>2019-01-29T11:41:05+03:00</creation-date>
<last-update-date>2019-01-29T12:34:55+03:00</last-update-date>
Россия
Ленинградская область
Всеволожский район
<locality-name>пос. Бугры </locality-name>
Всеволожский район, посёлок Бугры, Тихая улица, 1
Парнас
<time-on-transport>10</time-on-transport>
60.0697
30.4123
storage4.kv1.ru/clients/hors/images/base/base_new_dom/photo11789_43887e641.jpg
storage4.kv1.ru/clients/hors/images/base/base_new_kv/photo20050_afdc7b7d1.jpg
storage4.kv1.ru/clients/hors/images/base/base_new_kv/plan20050_8d89b34b1.jpg
34.18
кв. м
Жилой комплекс будет обеспечен собственной социальной инфраструктурой, включающей три детских сада на 775 мест и общеобразовательную школу, рассчитанную на 1 383 учащихся. На первых этажах зданий предусмотрены коммерческие помещения, в которых разместятся объекты инфраструктуры шаговой доступности — магазины, аптеки, салоны красоты и другие, необходимые для комфортной жизни службы и сервисы. Для удобства автомобилистов предусмотрен паркинг вместимостью свыше 4 000 машиномест, а также гостевые парковочные зоны.
1
<rooms-offered>1</rooms-offered>
7
<floors-total>17</floors-total>
<building-name>Новые Горизонты</building-name>
<yandex-building-id>51646</yandex-building-id>
<building-type>Кирпично-монолит.</building-type>
<building-section>очередь 1, корпус 1</building-section>
<built-year>2017</built-year>
<ready-quarter>2</ready-quarter>
<building-state>hand-over</building-state>
+
<is-elite>-</is-elite>
+
2555000
RUR
<deal-status>переуступка</deal-status>
<sales-agent>
+
агентство
HORS
<email/>
</sales-agent>
предчистовая
Комментарии: 13
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
1. Загрузить XML-файл куда-нибудь в бэкенд.
2. Написать сниппет, в нем создать из XML-файла объект с помощью функции simplexml_load_file();
3. Создать переменные, обращаясь к нужным полям объекта;
4. Создать объект с помощью $modx->newObject('modDocument');
5. Прописать нужные параметры из переменных;
Просто в пхп не особо(
Вот код. Во-первых, у тебя XML не полностью приведен видимо. Должен быть корень (имя произвольное).
Допустим, XML-файл сидит в папке misc, и называется 77777.xml
То, что в XML есть дефисы, тоже не очень хорошо. Но можно при выполнении запросов обернуть нужные поля в фигурные скобки с кавычками.
Создаем сниппет, назовем его temp.
Использовать свои поля по аналогии. Можно обернуть в цикл и создавать несколько.
Сниппет можно вставить куда-нибудь и открыть страницу, он активируется.
Вуаля!
Спасибо большое, вроде понял что куда и как)
Сейчас буду тогда пробовать и дополнять)
Но при попытке спарсить этим кодом мой xml он ни в какую не хочет выводить значения
Пробую $doc->setTVValue('image',$image);
Если в дефолтные поля, то все работает но в TV не сохраняет, в чем может быть причина?
Я бы убрал все параметры в тегах с помощью автозамены.
PHP может ругаться из-за каких-то символов.
Можно еще поодиночке проверять с помощью echo.
но на выбор есть 2 вида, Тот что я показывал и еще один
Все нормально парсится.
Проверь сначала с помощью echo, типа того:
Проверь путь к файлу XML, имя и тд.
Также правильно обращаться к полям XML. Где-то мб опечатка.
Проверь версии PHP и MODX.
Причина может быть где угодно!