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