1

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

4

0 回答 0