代码之家  ›  专栏  ›  技术社区  ›  Graham Conzett

使用xpath/xslt分析iCalendar数据

  •  1
  • Graham Conzett  · 技术社区  · 15 年前

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

    1 回复  |  直到 15 年前
        1
  •  2
  •   Nic Gibson    15 年前

    好吧,最初的问题是它不是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 代表 艾琳达尔。您可以在 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>
        </vcaledar>
    </iCalendar
    

    (我是从草稿中复制的,因此是奇数名称空间)。有更多关于 OASIS Coverpages 站点及在 CalConnect blog (这是最新的)。

    如果可以从一个转换到另一个,那么可以使用xpath语句解析它。如果没有,则可以分析文本。我不知道我害怕的任何实现。