Рекурсивно удалить атрибут из XmlElement и его дочерних элементов в.NET 3.5
Какой самый лучший и самый аккуратный способ удалить любой атрибут с именем A в XmlElement и рекурсивно?
Я видел другие подобные вопросы, но ответом всегда является функция Attribute.Remove(), которая доступна только в платформе 4.5 или выше. Я работаю над платформой 3.5, и я еще не нашел способ убедить меня.
На данный момент я написал что-то вроде этого:
private void RemoveA(XmlElement elem)
{
if (elem!= null)
{
elem.RemoveAttribute("A", elem.NamespaceURI);
IEnumerator nodeList = elem.ChildNodes.GetEnumerator();
object next = nodeList.MoveNext();
while (next != null)
{
RemoveA(next as XmlElement);
next = nodeList.MoveNext();
}
}
}
Что действительно кажется мне ужасным способом сделать это, особенно для использования переменной Object и namespaceURI в методе удаления атрибута (почему нет перегрузки, которая ищет имя в текущем элементе!!?)