2 people like it.
Like the snippet!
netty
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
|
open System
open System.Xml
open System.Xml.XPath
let ToDateTime str =
match DateTime.TryParse str with
| true, date -> date
| false, _ -> DateTime.MinValue
// Select nodes.
let inline (+/) (nav: XPathNavigator) (path: string) =
let iter = nav.Select(path)
seq { while iter.MoveNext() do yield iter.Current }
// Select a single node.
let inline (+//) (nav: XPathNavigator) (path: string) =
nav.SelectSingleNode(path)
// Get the value of a node.
let inline (+//>) (nav: XPathNavigator) (path: string) =
nav.SelectSingleNode(path).Value
// Get the value of specified attribute for the current node.
let inline (+//>>) (nav: XPathNavigator) (attr: string) =
nav.GetAttribute(attr, String.Empty)
let parseAtomEntry xnav =
let title = xnav +//> @"entry/title"
let url = xnav +// @"entry/link" +//>> "href"
let updated = xnav +//> @"entry/updated" |> ToDateTime
let formType = xnav +// @"entry/category" +//>> "term"
let id = xnav +//> "entry/id"
{ Title = title
Url = url
Updated = updated
FormType = "4"
Id = id }
let parseAtomFeed feed =
let entries =
feed +/ @"/feed/entry"
|> Seq.map parseAtomEntry
|> List.ofSeq
()
|
namespace System
namespace System.Xml
namespace System.Xml.XPath
val ToDateTime : str:string -> DateTime
Full name: Script.ToDateTime
val str : string
Multiple items
type DateTime =
struct
new : ticks:int64 -> DateTime + 10 overloads
member Add : value:TimeSpan -> DateTime
member AddDays : value:float -> DateTime
member AddHours : value:float -> DateTime
member AddMilliseconds : value:float -> DateTime
member AddMinutes : value:float -> DateTime
member AddMonths : months:int -> DateTime
member AddSeconds : value:float -> DateTime
member AddTicks : value:int64 -> DateTime
member AddYears : value:int -> DateTime
...
end
Full name: System.DateTime
--------------------
DateTime()
(+0 other overloads)
DateTime(ticks: int64) : unit
(+0 other overloads)
DateTime(ticks: int64, kind: DateTimeKind) : unit
(+0 other overloads)
DateTime(year: int, month: int, day: int) : unit
(+0 other overloads)
DateTime(year: int, month: int, day: int, calendar: Globalization.Calendar) : unit
(+0 other overloads)
DateTime(year: int, month: int, day: int, hour: int, minute: int, second: int) : unit
(+0 other overloads)
DateTime(year: int, month: int, day: int, hour: int, minute: int, second: int, kind: DateTimeKind) : unit
(+0 other overloads)
DateTime(year: int, month: int, day: int, hour: int, minute: int, second: int, calendar: Globalization.Calendar) : unit
(+0 other overloads)
DateTime(year: int, month: int, day: int, hour: int, minute: int, second: int, millisecond: int) : unit
(+0 other overloads)
DateTime(year: int, month: int, day: int, hour: int, minute: int, second: int, millisecond: int, kind: DateTimeKind) : unit
(+0 other overloads)
DateTime.TryParse(s: string, result: byref<DateTime>) : bool
DateTime.TryParse(s: string, provider: IFormatProvider, styles: Globalization.DateTimeStyles, result: byref<DateTime>) : bool
val date : DateTime
field DateTime.MinValue
val nav : XPathNavigator
type XPathNavigator =
inherit XPathItem
member AppendChild : unit -> XmlWriter + 3 overloads
member AppendChildElement : prefix:string * localName:string * namespaceURI:string * value:string -> unit
member BaseURI : string
member CanEdit : bool
member CheckValidity : schemas:XmlSchemaSet * validationEventHandler:ValidationEventHandler -> bool
member Clone : unit -> XPathNavigator
member ComparePosition : nav:XPathNavigator -> XmlNodeOrder
member Compile : xpath:string -> XPathExpression
member CreateAttribute : prefix:string * localName:string * namespaceURI:string * value:string -> unit
member CreateAttributes : unit -> XmlWriter
...
Full name: System.Xml.XPath.XPathNavigator
val path : string
Multiple items
val string : value:'T -> string
Full name: Microsoft.FSharp.Core.Operators.string
--------------------
type string = String
Full name: Microsoft.FSharp.Core.string
val iter : XPathNodeIterator
XPathNavigator.Select(expr: XPathExpression) : XPathNodeIterator
XPathNavigator.Select(xpath: string) : XPathNodeIterator
XPathNavigator.Select(xpath: string, resolver: IXmlNamespaceResolver) : XPathNodeIterator
Multiple items
val seq : sequence:seq<'T> -> seq<'T>
Full name: Microsoft.FSharp.Core.Operators.seq
--------------------
type seq<'T> = Collections.Generic.IEnumerable<'T>
Full name: Microsoft.FSharp.Collections.seq<_>
XPathNodeIterator.MoveNext() : bool
property XPathNodeIterator.Current: XPathNavigator
XPathNavigator.SelectSingleNode(expression: XPathExpression) : XPathNavigator
XPathNavigator.SelectSingleNode(xpath: string) : XPathNavigator
XPathNavigator.SelectSingleNode(xpath: string, resolver: IXmlNamespaceResolver) : XPathNavigator
val attr : string
XPathNavigator.GetAttribute(localName: string, namespaceURI: string) : string
Multiple items
type String =
new : value:char -> string + 7 overloads
member Chars : int -> char
member Clone : unit -> obj
member CompareTo : value:obj -> int + 1 overload
member Contains : value:string -> bool
member CopyTo : sourceIndex:int * destination:char[] * destinationIndex:int * count:int -> unit
member EndsWith : value:string -> bool + 2 overloads
member Equals : obj:obj -> bool + 2 overloads
member GetEnumerator : unit -> CharEnumerator
member GetHashCode : unit -> int
...
Full name: System.String
--------------------
String(value: nativeptr<char>) : unit
String(value: nativeptr<sbyte>) : unit
String(value: char []) : unit
String(c: char, count: int) : unit
String(value: nativeptr<char>, startIndex: int, length: int) : unit
String(value: nativeptr<sbyte>, startIndex: int, length: int) : unit
String(value: char [], startIndex: int, length: int) : unit
String(value: nativeptr<sbyte>, startIndex: int, length: int, enc: Text.Encoding) : unit
field string.Empty
val parseAtomEntry : xnav:XPathNavigator -> 'a
Full name: Script.parseAtomEntry
val xnav : XPathNavigator
val title : string
val url : string
val updated : DateTime
val formType : string
val id : string
val parseAtomFeed : feed:XPathNavigator -> unit
Full name: Script.parseAtomFeed
val feed : XPathNavigator
val entries : obj list
module Seq
from Microsoft.FSharp.Collections
val map : mapping:('T -> 'U) -> source:seq<'T> -> seq<'U>
Full name: Microsoft.FSharp.Collections.Seq.map
Multiple items
module List
from Microsoft.FSharp.Collections
--------------------
type List<'T> =
| ( [] )
| ( :: ) of Head: 'T * Tail: 'T list
interface IEnumerable
interface IEnumerable<'T>
member Head : 'T
member IsEmpty : bool
member Item : index:int -> 'T with get
member Length : int
member Tail : 'T list
static member Cons : head:'T * tail:'T list -> 'T list
static member Empty : 'T list
Full name: Microsoft.FSharp.Collections.List<_>
val ofSeq : source:seq<'T> -> 'T list
Full name: Microsoft.FSharp.Collections.List.ofSeq
More information