Немного опоздал на вечеринку, но вот что я недавно использовал:
var doc = XDocument.Parse(xmlString);
doc.Root.DescendantNodesAndSelf().OfType<XElement>().Attributes().Where(att => att.IsNamespaceDeclaration).Remove();
(взято из этой MSDN Thread )
Редактировать В соответствии с комментарием ниже, кажется, что, хотя это удаляет префикс пространства имен из узлов, оно фактически не удаляет атрибут xmlns. Для этого вам также необходимо сбросить имя каждого узла на его локальное имя (например, имя минус пространство имен)
foreach (var node in doc.Root.DescendantNodesAndSelf().OfType<XElement>())
{
node.Name = node.Name.LocalName;
}