在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(为什么没有在当前元素中搜索名称的重载!!? )