使用 i:nil=false 创建 xml 元素



我正在尝试创建一个元素,它应该是这样的:"

我的代码是这样的

从 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"相关联。第二个属性使用该命名空间,当写出元素时,前缀用于表示命名空间。

最新更新