Я пытаюсь удалить некоторые атрибуты из XML-документа.Вот что я попробовал:
private void RemoveEmptyNamespace(XElement element) {
foreach (XElement el in element.Elements()) {
if (el.Attribute("xmlns") != null && el.Attribute("xmlns").Value == string.Empty)
el.Attribute("xmlns").Remove();
if (el.HasElements)
RemoveEmptyNamespace(el);
}
}
Но это не работает.Когда я выполняю отладку внутри метода, атрибут удаляется, но когда метод выполняется полностью, изменения не сохраняются.Документ такой же.Я полагаю, что это из-за цикла foreach, но я не вижу другого пути прохождения цикла.
Любые предложения приветствуются.
РЕДАКТИРОВАТЬ: Вот весь код, который я использую:
var file = new FileStream(destinationPath, FileMode.Open);
var doc = new XDocument();
doc = XDocument.Load(savedFile);
RemoveEmptyNamespace(doc.Root);//method above
file.SetLength(0);
doc.Save(file);
file.Close();
РЕДАКТИРОВАТЬ2: Теперь я попытался достичь той же цели, перейдяпострочно и заменяя строки.И ничего не происходит !!!Документ все тот же.Если у кого-то была подобная проблема, пожалуйста, помогите мне.