Ну, ваша первоначальная проблема заключается в том, что это не формат 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. Если нет, то вы можете разобрать текст. Я на самом деле не знаю каких-либо реализаций, я боюсь.