XPath & xs:DateTime — date format
Имеется XML следующего вида
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .xml.geshi_code {font-family:monospace;} .xml.geshi_code .imp {font-weight: bold; color: red;} .xml.geshi_code .es0 {color: #000099; font-weight: bold;} .xml.geshi_code .br0 {color: #66cc66;} .xml.geshi_code .sy0 {color: #66cc66;} .xml.geshi_code .st0 {color: #ff0000;} .xml.geshi_code .sc-1 {color: #808080; font-style: italic;} .xml.geshi_code .sc0 {color: #00bbdd;} .xml.geshi_code .sc1 {color: #ddbb00;} .xml.geshi_code .sc2 {color: #339933;} .xml.geshi_code .sc3 {color: #009900;} .xml.geshi_code .re0 {color: #000066;} .xml.geshi_code .re1 {color: #000000; font-weight: bold;} .xml.geshi_code .re2 {color: #000000; font-weight: bold;} .xml.geshi_code span.xtra { display:block; }
где created_at - это дата и время представленные в формате "ddd MMM dd HH:mm:ss zzz yyyy"
Формат корректен, и DateTime.ParseExact(...) работает, и парсит дату верно.
Но мне необходимо делать XPath запросы на XML такого вида для выбора всех твиттов за определенный день,
что-то типа
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .xml.geshi_code {font-family:monospace;} .xml.geshi_code .imp {font-weight: bold; color: red;} .xml.geshi_code .es0 {color: #000099; font-weight: bold;} .xml.geshi_code .br0 {color: #66cc66;} .xml.geshi_code .sy0 {color: #66cc66;} .xml.geshi_code .st0 {color: #ff0000;} .xml.geshi_code .sc-1 {color: #808080; font-style: italic;} .xml.geshi_code .sc0 {color: #00bbdd;} .xml.geshi_code .sc1 {color: #ddbb00;} .xml.geshi_code .sc2 {color: #339933;} .xml.geshi_code .sc3 {color: #009900;} .xml.geshi_code .re0 {color: #000066;} .xml.geshi_code .re1 {color: #000000; font-weight: bold;} .xml.geshi_code .re2 {color: #000000; font-weight: bold;} .xml.geshi_code span.xtra { display:block; }
но парсер (Saxon) ругается на xs:DateTime(created-at)
Invalid dateTime value "Sun Jun 12 08:49:04 +0000 2011" (Non-numeric year component)
Подскажите как быть, кроме варианта "в лоб" - substring(0,3) ... и т.д.
Желательно используя XPath, т.к основная задача как раз вынести максимум из code-behind в XML-config.
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .xml.geshi_code {font-family:monospace;} .xml.geshi_code .imp {font-weight: bold; color: red;} .xml.geshi_code .es0 {color: #000099; font-weight: bold;} .xml.geshi_code .br0 {color: #66cc66;} .xml.geshi_code .sy0 {color: #66cc66;} .xml.geshi_code .st0 {color: #ff0000;} .xml.geshi_code .sc-1 {color: #808080; font-style: italic;} .xml.geshi_code .sc0 {color: #00bbdd;} .xml.geshi_code .sc1 {color: #ddbb00;} .xml.geshi_code .sc2 {color: #339933;} .xml.geshi_code .sc3 {color: #009900;} .xml.geshi_code .re0 {color: #000066;} .xml.geshi_code .re1 {color: #000000; font-weight: bold;} .xml.geshi_code .re2 {color: #000000; font-weight: bold;} .xml.geshi_code span.xtra { display:block; }
<status>
<created_at>Sun Jun 12 08:49:04 +0000 2011</created_at>
<id>79832579427143681</id>
<text>@just011f Юзай Localhost - найкращий безкоштовний хостінг:) #hackday</text>
<source><a href="http://www.tweetdeck.com" rel="nofollow">TweetDeck</a></source>
<truncated>false</truncated>
<favorited>false</favorited>
<in_reply_to_status_id>79749435738963968</in_reply_to_status_id>
<in_reply_to_user_id>72544077</in_reply_to_user_id>
<in_reply_to_screen_name>just011f</in_reply_to_screen_name>
<retweet_count>1</retweet_count>
<retweeted>false</retweeted>
<user>
<id>97495292</id>
</user>
<geo />
<coordinates />
<place />
<contributors />
</status>
<created_at>Sun Jun 12 08:49:04 +0000 2011</created_at>
<id>79832579427143681</id>
<text>@just011f Юзай Localhost - найкращий безкоштовний хостінг:) #hackday</text>
<source><a href="http://www.tweetdeck.com" rel="nofollow">TweetDeck</a></source>
<truncated>false</truncated>
<favorited>false</favorited>
<in_reply_to_status_id>79749435738963968</in_reply_to_status_id>
<in_reply_to_user_id>72544077</in_reply_to_user_id>
<in_reply_to_screen_name>just011f</in_reply_to_screen_name>
<retweet_count>1</retweet_count>
<retweeted>false</retweeted>
<user>
<id>97495292</id>
</user>
<geo />
<coordinates />
<place />
<contributors />
</status>
где created_at - это дата и время представленные в формате "ddd MMM dd HH:mm:ss zzz yyyy"
Формат корректен, и DateTime.ParseExact(...) работает, и парсит дату верно.
Но мне необходимо делать XPath запросы на XML такого вида для выбора всех твиттов за определенный день,
что-то типа
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .xml.geshi_code {font-family:monospace;} .xml.geshi_code .imp {font-weight: bold; color: red;} .xml.geshi_code .es0 {color: #000099; font-weight: bold;} .xml.geshi_code .br0 {color: #66cc66;} .xml.geshi_code .sy0 {color: #66cc66;} .xml.geshi_code .st0 {color: #ff0000;} .xml.geshi_code .sc-1 {color: #808080; font-style: italic;} .xml.geshi_code .sc0 {color: #00bbdd;} .xml.geshi_code .sc1 {color: #ddbb00;} .xml.geshi_code .sc2 {color: #339933;} .xml.geshi_code .sc3 {color: #009900;} .xml.geshi_code .re0 {color: #000066;} .xml.geshi_code .re1 {color: #000000; font-weight: bold;} .xml.geshi_code .re2 {color: #000000; font-weight: bold;} .xml.geshi_code span.xtra { display:block; }
/statuses/status[xs:date(xs:DateTime(created-at)) = xs:date('2011-04-01')]
но парсер (Saxon) ругается на xs:DateTime(created-at)
Invalid dateTime value "Sun Jun 12 08:49:04 +0000 2011" (Non-numeric year component)
Подскажите как быть, кроме варианта "в лоб" - substring(0,3) ... и т.д.
Желательно используя XPath, т.к основная задача как раз вынести максимум из code-behind в XML-config.