在.NET 3.5上以递归方式从XmlElement及其子项中删除属性

时间:2015-09-12 02:22:42

标签: c# xml-parsing .net-3.5 nsxmlelement

在XmlElement上以递归方式删除名称为A的任何属性的最佳,最整洁的方法是什么?

我见过其他类似问题,但答案始终是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变量的使用,以及remove属性方法中的namespaceURI(为什么没有在当前元素中搜索名称的重载!!? )

0 个答案:

没有答案