Добавить пространство имен с двоеточием в XML-файл
Мне нужно создать XML-файл, который выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<ns:Root xmlns:ns0="http://namespace">
<Node1>
<A>ValueA</A>
<B>ValueB</B>
</Node1>
</Root>
Это мой код:
const string ns = "http://namespace";
var xDocument = new XDocument(
new XElement("Root",
new XAttribute(XNamespace.Xmlns + "ns0", ns),
new XElement("Node1",
new XElement("A", "ValueA"),
new XElement("B", "ValueB")
)
)
);
Но это производит:
<?xml version="1.0" encoding="utf-8"?>
<Root xmlns:ns0="http://namespace">
<Node1>
<A>ValueA</A>
<B>ValueB</B>
</Node1>
</Root>
Обратите внимание на отсутствующее "ns0:" перед корневым узлом. Как я могу добавить это? Все остальное должно быть точно таким же.
1 ответ
Решение
Попробуй это
XNamespace ns = XNamespace.Get("http://namespace");
var xDocument = new XDocument(
new XElement(ns + "Root",
new XAttribute(XNamespace.Xmlns + "ns0", ns),
new XElement("Node1",
new XElement("A", "ValueA"),
new XElement("B", "ValueB")
)));