3 people like it.
Like the snippet!
Quick & Dirty Dynamic XLinq
Uses dynamic operator to quickly create XML
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
|
#r "System.Xml.Linq"
open System.Xml.Linq
type Xml = E | A
let (?) v name (content: obj) =
let name = XName.Get name
match v with
| E -> XElement(name, content) :> XObject
| A -> XAttribute(name, content) :> _
E?Dataset [
E?Page [
A?Type "HTML Web Site"
E?html [
E?head []
E?body [
E?div []
E?p []
]
]
]
]
|> string
|
namespace System
namespace System.Xml
namespace System.Xml.Linq
type Xml =
| E
| A
Full name: Script.Xml
union case Xml.E: Xml
union case Xml.A: Xml
val v : Xml
val name : string
val content : obj
type obj = System.Object
Full name: Microsoft.FSharp.Core.obj
val name : XName
type XName =
member Equals : obj:obj -> bool
member GetHashCode : unit -> int
member LocalName : string
member Namespace : XNamespace
member NamespaceName : string
member ToString : unit -> string
static member Get : expandedName:string -> XName + 1 overload
Full name: System.Xml.Linq.XName
XName.Get(expandedName: string) : XName
XName.Get(localName: string, namespaceName: string) : XName
Multiple items
type XElement =
inherit XContainer
new : name:XName -> XElement + 4 overloads
member AncestorsAndSelf : unit -> IEnumerable<XElement> + 1 overload
member Attribute : name:XName -> XAttribute
member Attributes : unit -> IEnumerable<XAttribute> + 1 overload
member DescendantNodesAndSelf : unit -> IEnumerable<XNode>
member DescendantsAndSelf : unit -> IEnumerable<XElement> + 1 overload
member FirstAttribute : XAttribute
member GetDefaultNamespace : unit -> XNamespace
member GetNamespaceOfPrefix : prefix:string -> XNamespace
member GetPrefixOfNamespace : ns:XNamespace -> string
...
Full name: System.Xml.Linq.XElement
--------------------
XElement(name: XName) : unit
XElement(other: XElement) : unit
XElement(other: XStreamingElement) : unit
XElement(name: XName, content: obj) : unit
XElement(name: XName, [<System.ParamArray>] content: obj []) : unit
type XObject =
member AddAnnotation : annotation:obj -> unit
member Annotation<'T> : unit -> 'T + 1 overload
member Annotations<'T> : unit -> IEnumerable<'T> + 1 overload
member BaseUri : string
member Document : XDocument
member NodeType : XmlNodeType
member Parent : XElement
member RemoveAnnotations<'T> : unit -> unit + 1 overload
event Changed : EventHandler<XObjectChangeEventArgs>
event Changing : EventHandler<XObjectChangeEventArgs>
Full name: System.Xml.Linq.XObject
Multiple items
type XAttribute =
inherit XObject
new : other:XAttribute -> XAttribute + 1 overload
member IsNamespaceDeclaration : bool
member Name : XName
member NextAttribute : XAttribute
member NodeType : XmlNodeType
member PreviousAttribute : XAttribute
member Remove : unit -> unit
member SetValue : value:obj -> unit
member ToString : unit -> string
member Value : string with get, set
...
Full name: System.Xml.Linq.XAttribute
--------------------
XAttribute(other: XAttribute) : unit
XAttribute(name: XName, value: obj) : unit
Multiple items
val string : value:'T -> string
Full name: Microsoft.FSharp.Core.Operators.string
--------------------
type string = System.String
Full name: Microsoft.FSharp.Core.string
More information