2010-06-08 85 views
3

我有一個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

回答

9

您的代碼當前正在創建一個元素而沒有一個名稱空間。大概這是在在一個命名空間內的元素,這就是爲什麼它加入了xmlns=""部分。如果你只是希望它保持相同的命名空間內,只需使用:

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

只是再次強調,這不是關於刪除命名空間 - 這是關於把元素插入相同的命名空間「默認「從其父項繼承。