Подскажите, как работать с XML файлами в Feeds?

Главные вкладки

Аватар пользователя VasyOK VasyOK 14 июля в 17:16

Всем привет! Кто нибудь импортирует значения из XML файлов через feeds?

Есть файл с подобным содержимым. Как из него импортировать?

<?xml version="1.0" encoding="utf-8"?>
<icalendar xmlns="urn:ietf:params:xml:ns:icalendar-2.0">       
        <vcalendar>
                <properties>
                        <version>
                                <text>
                                        2.0
                                </text>
                        </version>
                        <prodid>
                                <text>
                                        -////NONSGML kigkonsult.se iCalcreator 2.26.9//
                                </text>
                        </prodid>
                        <calscale>
                                <text>
                                        GREGORIAN
                                </text>
                        </calscale>
                        <method>
                                <text>
                                        PUBLISH
                                </text>
                        </method>
                        <x-wr-calname>
                                <unknown>
                                        Planet Allgäu
                                </unknown>
                        </x-wr-calname>
                        <x-from-url>
                                <unknown>
                                        https://events.timely.fun/ccah71pr
                                </unknown>
                        </x-from-url>
                        <x-wr-timezone>
                                <unknown>
                                        Europe/Berlin
                                </unknown>
                        </x-wr-timezone>
                </properties>
                <components>
                        <vtimezone>
                                <!-- Всяко разное для временной зоны -->
                        </vtimezone>
                        <vevent>
                                <properties>
                                        <uid>
                                                <text>
                                                        4ac912e0-0e11-11ef-8d31-1b04cab4d1bd-time.ly
                                                </text>
                                        </uid>                         
                                        <summary>
                                                <text>
                                                        Erlebnisausstellung Naturpark Nagelfluhkette
                                                </text>
                                        </summary>                                     
                                </properties>
                        </vevent>
                        <vevent>
                                <properties>
                                        <uid>
                                                <text>
                                                        40f7ba00-077b-11ef-919b-8f799ac0f531-time.ly
                                                </text>
                                        </uid>                                 
                                        <summary>
                                                <text>
                                                        Freiheit erleben - Memminger Altstadtrundgang
                                                </text>
                                        </summary>                                     
                                </properties>
                        </vevent>                      
                </components>
        </vcalendar>
</icalendar>

Пока что, выставил в маппингах, чтобы импортировать только заголовки:

А правильно ли? Что такое Context?

Результат... Отсутствует. Пишет "There are no new NODE TYPE items. "

Лучший ответ

Аватар пользователя VasyOK VasyOK 15 июля в 17:24

Кажется для заголовка XPath должен быть:
properties/summary/text
Вроде работает. Сейчас тестирую...

Комментарии

Аватар пользователя VasyOK VasyOK 15 июля в 0:01

Поменял Context и Source на

Оно то работает, если элемент <vevent> всего один, а если 2 (как в простыне кода выше), то пишет:

The content Erlebnisausstellung Naturpark Nagelfluhkette failed to validate with the following errors:
Title (title): Title: this field cannot hold more than 1 values.

И как его заставить кушать более одного значения?

Аватар пользователя VasyOK VasyOK 15 июля в 16:06

Могу даже сократить простыню кода, для лучшего понимания вопроса.
Вот так работает (одно значение):

<?xml version="1.0" encoding="utf-8"?>
<icalendar xmlns="urn:ietf:params:xml:ns:icalendar-2.0">
        <vcalendar>
                <components>                   
                        <vevent>
                                <properties>                                   
                                        <summary>
                                                <text>
                                                        Article 1
                                                </text>
                                        </summary>                                     
                                </properties>
                        </vevent>                      
                </components>
        </vcalendar>
</icalendar>

А так нет:

<?xml version="1.0" encoding="utf-8"?>
<icalendar xmlns="urn:ietf:params:xml:ns:icalendar-2.0">
        <vcalendar>
                <components>                   
                        <vevent>
                                <properties>                                   
                                        <summary>
                                                <text>
                                                        Article 1
                                                </text>
                                        </summary>                                     
                                </properties>
                        </vevent>
                        <vevent>
                                <properties>                                   
                                        <summary>
                                                <text>
                                                        Article 2
                                                </text>
                                        </summary>                                     
                                </properties>
                        </vevent>                      
                </components>
        </vcalendar>
</icalendar>