我正在尝试创建一个元素,它应该是这样的:"
我的代码是这样的
从 xlist in xmlReport
select new XElement("Binding",
new XElement("ID", xlist.ID),
new XElement("Name", xlist.Name),
new XElement("Info"),
new XElement("Specification",
new XElement("Number", xlist.Number),
new XElement("SerialNumber", xlist.SerialNumber),
new XElement("Date", xlist.ConsumedDate),
new XElement("Site", xlist.Site)))
这行代码正在生成上面提到的 XML<信息 />标签
而不是<信息>信息>
我如何得到这个"i:nil=true"?
好吧,这似乎可以满足您的需求,但您需要填写正确的命名空间:
using System;
using System.Xml.Linq;
class Program
{
public static void Main()
{
XNamespace ns = "http://somenamespace";
XElement element = new XElement("Root",
new XAttribute(XNamespace.Xmlns + "i", ns.ToString()),
new XElement("info",
new XAttribute(ns + "nil", true)));
Console.WriteLine(element);
}
}
第一个属性将前缀"i"与根元素及其后代的命名空间"http://somenamespace"相关联。第二个属性使用该命名空间,当写出元素时,前缀用于表示命名空间。