static private RemoveAttribute ( |
||
node | ||
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); }