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