RemoveAttribute() static private method

static private RemoveAttribute ( XmlNode node, string name ) : string
node System.Xml.XmlNode
name string
return string
        public virtual object Create(object parent, object context, XmlNode section)
        {
            Hashtable hashtable;

            if (parent == null)
            {
                hashtable = new Hashtable(StringComparer.OrdinalIgnoreCase);
            }
            else
            {
                hashtable = (Hashtable)((Hashtable)parent).Clone();
            }
            HandlerBase.CheckForUnrecognizedAttributes(section);
            foreach (XmlNode node in section.ChildNodes)
            {
                if (!HandlerBase.IsIgnorableAlsoCheckForNonElement(node))
                {
                    if (node.Name == "add")
                    {
                        string str2;
                        HandlerBase.CheckForChildNodes(node);
                        string str = HandlerBase.RemoveRequiredAttribute(node, this.KeyAttributeName);
                        if (this.ValueRequired)
                        {
                            str2 = HandlerBase.RemoveRequiredAttribute(node, this.ValueAttributeName);
                        }
                        else
                        {
                            str2 = HandlerBase.RemoveAttribute(node, this.ValueAttributeName);
                        }
                        HandlerBase.CheckForUnrecognizedAttributes(node);
                        if (str2 == null)
                        {
                            str2 = "";
                        }
                        hashtable[str] = str2;
                    }
                    else if (node.Name == "remove")
                    {
                        HandlerBase.CheckForChildNodes(node);
                        string key = HandlerBase.RemoveRequiredAttribute(node, this.KeyAttributeName);
                        HandlerBase.CheckForUnrecognizedAttributes(node);
                        hashtable.Remove(key);
                    }
                    else if (node.Name.Equals("clear"))
                    {
                        HandlerBase.CheckForChildNodes(node);
                        HandlerBase.CheckForUnrecognizedAttributes(node);
                        hashtable.Clear();
                    }
                    else
                    {
                        HandlerBase.ThrowUnrecognizedElement(node);
                    }
                }
            }
            return(hashtable);
        }
        /// <devdoc>
        /// Given a partially composed config object (possibly null)
        /// and some input from the config system, return a
        /// further partially composed config object
        /// </devdoc>
        public virtual object Create(Object parent, Object context, XmlNode section)
        {
            Hashtable res;

            // start res off as a shallow clone of the parent

            if (parent == null)
            {
                res = new Hashtable(StringComparer.OrdinalIgnoreCase);
            }
            else
            {
                res = (Hashtable)((Hashtable)parent).Clone();
            }

            // process XML

            HandlerBase.CheckForUnrecognizedAttributes(section);

            foreach (XmlNode child in section.ChildNodes)
            {
                // skip whitespace and comments, throws if non-element
                if (HandlerBase.IsIgnorableAlsoCheckForNonElement(child))
                {
                    continue;
                }

                // handle <add>, <remove>, <clear> tags
                if (child.Name == "add")
                {
                    HandlerBase.CheckForChildNodes(child);
                    String key = HandlerBase.RemoveRequiredAttribute(child, KeyAttributeName);
                    String value;
                    if (ValueRequired)
                    {
                        value = HandlerBase.RemoveRequiredAttribute(child, ValueAttributeName);
                    }
                    else
                    {
                        value = HandlerBase.RemoveAttribute(child, ValueAttributeName);
                    }
                    HandlerBase.CheckForUnrecognizedAttributes(child);

                    if (value == null)
                    {
                        value = "";
                    }

                    res[key] = value;
                }
                else if (child.Name == "remove")
                {
                    HandlerBase.CheckForChildNodes(child);
                    String key = HandlerBase.RemoveRequiredAttribute(child, KeyAttributeName);
                    HandlerBase.CheckForUnrecognizedAttributes(child);

                    res.Remove(key);
                }
                else if (child.Name.Equals("clear"))
                {
                    HandlerBase.CheckForChildNodes(child);
                    HandlerBase.CheckForUnrecognizedAttributes(child);
                    res.Clear();
                }
                else
                {
                    HandlerBase.ThrowUnrecognizedElement(child);
                }
            }

            return(res);
        }