Рекурсивно удалить атрибут из 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 в методе удаления атрибута (почему нет перегрузки, которая ищет имя в текущем элементе!!?)

0 ответов

Другие вопросы по тегам