4

I want to create a Xml file that looks something like this:

<Root xmlns:ns1="name1" xmlns:ns2="name2">
    <ns1:element1 />
    <ns1:element2 />
    <ns2:element3 />
</Root>

How can I accomplish this using XAttribute, XElement, XNamespace, and XDocument where the namespaces are dynamically added.

skaffman
  • 398,947
  • 96
  • 818
  • 769
Steven
  • 4,826
  • 3
  • 35
  • 44

1 Answers1

3

I assume by "namespaces are dynamically added" you mean the namespace prefix. This generates the document, how close is it to what you meant?

        XNamespace ns1 = "name1", ns2 = "name2";

        XElement elem = new XElement("Root", 
                new XAttribute(XNamespace.Xmlns + "ns1", ns1), 
                new XAttribute(XNamespace.Xmlns + "ns2", ns2),
                new XElement(ns1 + "element1"),
                new XElement(ns1 + "element2"),
                new XElement(ns2 + "element3"));

        elem.Save("example.xml");
John Lewin
  • 6,050
  • 4
  • 22
  • 20