Разбор данных iCalendar с помощью XPath / XSLT - PullRequest
1 голос
/ 21 января 2010

Я работаю с CMS, управляемой XML, и прежде чем я ушел и написал или реализовал модуль, который анализирует формат iCal, мне было интересно, есть ли какой-нибудь способ его проанализировать, используя только XSLT или в идеале просто выражение XPath , поскольку это встроенная функция CMS.

1 Ответ

2 голосов
/ 21 января 2010

Ну, ваша первоначальная проблема заключается в том, что это не формат XML. Файлы iCalendar имеют теговый текст:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT
DTSTART:19970714T170000Z
DTEND:19970715T035959Z
SUMMARY;LANGUAGE="en_US":Bastille Day Party
END:VEVENT
END:VCALENDAR

Итак, анализ с XPath и XSLT может быть сложным. Тем не менее, существует XML представление iCalendar. Вы можете найти информацию в xCal Basic spec. Пример выше (из этой спецификации) выглядит так:

<?xml version="1.0" TODO_NAMESPACE="foo"?>
<iCalendar xmlns:xCal="urn:ietf:params:xml:ns:xcal">
    <vcalendar>
        <version>2.0</version>
        <prodid>-//hacksw/handcal//NONSGML v1.0//EN</prodid>
        <vevent>
            <dtstart>19970714T170000Z</dtstart>
            <dtendt>19970715T035959Z</dtend>
            <summary xml:lang="en_US">Bastille Day Party</summary>
        </vevent>
    </vcaledar>
</iCalendar

(я скопировал из черновика, отсюда и странное пространство имен). Более подробную информацию можно найти на сайте OASIS Coverpages и в блоге CalConnect (это самая актуальная информация).

Если вы можете конвертировать из одного в другое, тогда да, вы можете проанализировать его с помощью операторов XPath. Если нет, то вы можете разобрать текст. Я на самом деле не знаю каких-либо реализаций, я боюсь.

...