1

我正在使用 XML 驱动的 CMS,在我运行并编写或实现解析 iCal 格式的模块之前,我想知道是否有任何方法可以仅使用 XSLT 或理想情况下仅使用 XPath 表达式来解析它,因为这样是CMS的内置功能。

4

1 回答 1

2

好吧,您最初的问题是它不是 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 解析它可能具有挑战性。但是,存在 iCalendar 的 XML表示形式。您可以在xCal Basic规范中找到有关信息。上面的示例(来自该规范)如下所示:

<?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>
    </vcalendar>
</iCalendar>

(我从草稿中复制,因此是奇怪的命名空间)。有关OASIS Coverpages网站和CalConnect 博客(这是最新的)的更多信息。

如果您可以从一种转换为另一种,那么可以,您可以使用 XPath 语句对其进行解析。如果没有,那么您可以解析文本。恐怕我实际上并不知道任何实现。

于 2010-01-21T09:02:05.860 回答