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

时间:2010-06-08 17:48:41

标签: c# linq-to-xml xelement

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

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

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

1 个答案:

答案 0 :(得分:9)

您的代码目前正在创建一个元素而不是命名空间。据推测,这是在命名空间中 的元素内,这就是它添加xmlns=""部分的原因。如果您只是希望它保持在同一名称空间内,请使用:

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

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