2010-06-08 14 views
3

У меня есть XML, где у меня есть пространство имен _spreadSheetNameSapce. В моем коде я должен добавить новый элемент с атрибутом, связанным с именем пространства, и я делаю это как следующегоКак удалить пространство имен из XML-элемента с помощью C#

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

Это создает XElement должным образом, но это не вставить xmlns="" записи также в том же элементе. Я не хочу, чтобы этот элемент был создан. Как я могу создать XElement без пустого пространства имен или как удалить пространство имен после создания элемента?

+0

Возможный дубликат [Как удалить все пространства имен из XML с помощью C#?] (Http://stackoverflow.com/questions/987135/how-to-remove-all-namespaces-from-xml-with-c) –

+1

Найденная проблема, код должен быть новый XElement (_SpreadSheetNameSpace + "Row" .... – Nair

ответ

9

Ваш код в настоящее время создает элемент без пространство имен. Предположительно это находится внутри элемента, который равен в пространстве имен, поэтому он добавляет часть xmlns="". Если вы просто хотите, чтобы держать в том же пространстве имен, просто используйте:

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

Просто еще раз подчеркнуть, что это не про удаления пространства имен - это о том, чтобы положить элемент в том же пространстве имен, как " default ", унаследованный от его родителя.

Смежные вопросы