Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #r "System.Xml.Linq.dll"
- open System.Xml.Linq
- type Contents =
- | Children of Element seq
- | Value of string
- and Element = {
- Name: string
- Contents: Contents }
- let parse xml =
- let rec parse (xmlEle: XElement) =
- let name = xmlEle.Name.LocalName
- let contents =
- match xmlEle.HasElements with
- | false -> Value xmlEle.Value
- | true -> xmlEle.Elements() |> Seq.map parse |> Children
- { Name = name; Contents = contents }
- XDocument.Parse(xml).Elements() |> Seq.exactlyOne |> parse
- let unitTest() =
- let abba = parse "<a> <b>hi</b> </a>"
- match abba.Contents with | Children seq -> seq |> Seq.exactlyOne |> fun x -> x.Contents
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement