如何从使用C#的XML元素中删除命名空间

问题描述:

我有一个XML,我有一个名称空间_spreadSheetNameSapce。在我的代码必须与名称空间相关的属性添加新元素,我做它像下面如何从使用C#的XML元素中删除命名空间

XElement customHeading = new XElement("Row", 
    new XAttribute(_spreadSheetNameSapce + "AutoFitHeight", "0")); 

它创建XElement正确,但它确实插入xmlns=""条目也以相同的元素。我不希望创建该元素。如何创建没有空名称空间的XElement,或者如何在创建元素后删除名称空间?

+0

可能的重复[如何从C#中的XML中删除所有命名空间?](http://stackoverflow.com/questions/987135/how-to-remove-all-namespaces-from-xml-with-c) – 2010-06-08 17:53:00

+1

发现问题,代码应该是 新的XElement(_SpreadSheetNameSpace +“Row”.... – Nair 2010-06-08 18:14:28

您的代码当前正在创建一个元素而没有一个名称空间。大概这是在在一个命名空间内的元素,这就是为什么它加入了xmlns=""部分。如果你只是希望它保持相同的命名空间内,只需使用:

XElement customHeading = new XElement(_spreadSheetNameSapce + "Row", 
     new XAttribute(_spreadSheetNameSapce + "AutoFitHeight", "0")); 

只是再次强调,这不是关于删除命名空间 - 这是关于把元素插入相同的命名空间“默认“从其父项继承。