2 people like it.

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
Raw view Test code New version

More information

Link:http://fssnip.net/85
Posted:14 years ago
Author:
Tags: