C # - Add XML namespace tag (xmlns) to document

I am creating an XML document using System.XML in C #.

I am almost done, but I need to add a few similar ones to the top of my document:

<ABC xmlns="http://www.acme.com/ABC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" fileName="acmeth.xml" date="2011-09-16T10:43:54.91+01:00" origin="TEST" ref="XX_88888"> 

I need to add this just below where I have:

 <?xml version="1.0" encoding="UTF-8"?> 

I create this using the following code:

 XmlWriterSettings settings = new XmlWriterSettings { Encoding = Encoding.UTF8, Indent = true }; 

After that, I continue to create my XML document, which is finished, but I need to add an intermediate one.

thanks

John

+6
source share
2 answers

I think this is what you need:

 using System; using System.Xml.Linq; class Test { static void Main() { XNamespace ns = "http://www.acme.com/ABC"; DateTimeOffset date = new DateTimeOffset(2011, 9, 16, 10, 43, 54, 91, TimeSpan.FromHours(1)); XDocument doc = new XDocument( new XElement(ns + "ABC", new XAttribute("xmlns", ns.NamespaceName), new XAttribute(XNamespace.Xmlns + "xsi", "http://www.w3.org/2001/XMLSchema-instance"), new XAttribute("fileName", "acmeth.xml"), new XAttribute("date", date), new XAttribute("origin", "TEST"), new XAttribute("ref", "XX_88888"))); Console.WriteLine(doc); } } 
+19
source

You can add namespace declarations to the root XmlDocument element as follows:

 document.DocumentElement.SetAttribute("xmlns", "http://default-namespace"); document.DocumentElement.SetAttribute("xmlns:ns2", "http://other-namespace"); 
+5
source

Source: https://habr.com/ru/post/898308/


All Articles