2010-01-21 5 views
1

XML 기반 CMS로 작업하고 있으며 실행하기 전에 iCal 형식을 구문 분석하는 모듈을 작성하거나 구현하기 전에이를 사용하여 구문 분석하는 방법이 있는지 궁금합니다. XSLT 또는 이상적으로는 XPath 표현식이 CMS의 기본 제공 기능이기 때문입니다.XPath/XSLT를 사용하여 iCalendar 데이터를 구문 분석

답변

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의 표현 인이 있습니다. 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 문을 사용하여 구문 분석 할 수 있습니다. 그렇지 않으면 텍스트를 구문 분석 할 수 있습니다. 실제로 두려워하는 구현을 전혀 알지 못합니다.

+0

답장을 보내 주셔서 감사합니다. 정상적인 iCal 구현과 관련이 있습니다. 두려웠습니다. 좀 더 파고 들었고이 예제를 발견했습니다 http://designadmin.com/journal/2007/07/29/xslt-transformation-of-ics-to-xml/ 작성자가 iCal을 XML로 변환하는 것으로 보입니다. 하지만 XSL을위한 루트 XML 요소가 없으므로이를 구현하는 방법을 잘 모르겠습니다. –

+0

시간이 조금이라도 있으면 재미있게 보겠습니다. –

+1

@Graham - 시작하기 좋은 곳 같습니다. 스타일 시트를 실행할 때 iCal의 문자열 값을'ical-data-raw' 매개 변수로 전달하십시오. XSLT 자체를 비롯한 모든 XML 파일에 대해 해당 XSLT를 실행할 수 있습니다. 템플릿은'ical-data-raw' 매개 변수에서 작동하며 소스 XML 문서에서 아무 것도하지 않습니다. –

관련 문제