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

时间:2012-06-13 17:11:07

标签: xml-serialization

我正在尝试创建一个应该是这样的元素:“< Info i:nil =”true“/>

我的代码就是那样

来自xmlReport中的xlist

             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 />

我如何得到这个“i:nil = true”?

1 个答案:

答案 0 :(得分:1)

这似乎做了你想要的,但你需要填写正确的命名空间:

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