In this example I will create the following XML in F#:
<?xml version="1.0" encoding="utf-8"?>
<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
<w:body>
<w:p>
<w:r>
<w:t>This is a test</w:t>
</w:r>
</w:p>
</w:body>
</w:document>
Transferring C#-code is not straightforward because the constructor of XDocument does not accept the following code: new XDocument(new XDeclaration("1.0", "utf-8", "true"), new XElement("document"))
//First create some helpers:
let xnameNs str ns = XName.Get(str, ns)
let xname str =
xnameNs str "http://schemas.openxmlformats.org/wordprocessingml/2006/main"
let ns = XNamespace.Get("http://schemas.openxmlformats.org/wordprocessingml/2006/main")
let dec = new XDeclaration("1.0", "utf-8", "true")
let el =
new XElement(xname "document",
new XAttribute(XNamespace.Xmlns + "w", ns),
new XElement(xname "body",
new XElement(xname "p",
new XElement(xname "r",
new XElement(xname "t", "This is a test")
))))
//Add them together:
let document =
let doc =new XDocument(dec)
doc.AddFirst(el)
doc
//And test:
document.Save(@"D:\Tmp\test1.xml")