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

Nai*_*air 3 c# xelement linq-to-xml

我有一个XML,我有一个名称空间_spreadSheetNameSapce.在我的代码中,我必须添加一个新元素,其属性与空间名称相关联,我正在执行以下操作

XElement customHeading = new XElement("Row",
    new XAttribute(_spreadSheetNameSapce + "AutoFitHeight", "0"));
Run Code Online (Sandbox Code Playgroud)

它创建XElement正确,但它xmlns=""也在同一元素中插入条目.我不希望创建该元素.如何在XElement没有空名称空间的情况下创建,或者如何在创建元素后删除命名空间?

Jon*_*eet 9

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

XElement customHeading = new XElement(_spreadSheetNameSapce + "Row",
        new XAttribute(_spreadSheetNameSapce + "AutoFitHeight", "0"));
Run Code Online (Sandbox Code Playgroud)

再次强调,这不是关于删除命名空间 - 它是将一个元素放入与其父级继承的"默认"相同的命名空间.