RemoveAttributeNode() public method

public RemoveAttributeNode ( XmlAttribute oldAttr ) : XmlAttribute
oldAttr XmlAttribute
return XmlAttribute
        private void Munge(XmlElement el)
        {
            XmlAttribute cond = GetConditional(el);
            if (cond != null)
            {
                if (!new XppParser(cond.Value).Evaluate(this))
                {
                    el.ParentNode.RemoveChild(el);
                    return;
                }
                else
                {
                    el.RemoveAttributeNode(cond);
                }
            }

            XmlNodeList nodes = el.ChildNodes;
            XmlNode[] children = new XmlNode[nodes.Count];
            for (int i = 0; i < children.Length; i++)
                children[i] = nodes[i];

            foreach (XmlNode child in children)
            {
                if (child is XmlElement)
                    Munge((XmlElement)child);
            }
        }
Esempio n. 2
0
 private void SortAttributesAttributes(XmlElement el)
 {
     ArrayList al = new ArrayList();
     foreach (XmlAttribute a in el.Attributes)
         al.Add(a.Name);
     al.Sort();
     string[] names = (string[])al.ToArray(typeof(string));
     al.Clear();
     foreach (string name in names)
         al.Add(el.RemoveAttributeNode(
             el.GetAttributeNode(name)));
     foreach (XmlAttribute a in al)
         // Exclude xmlns="" here.
         if (a.Name != "xmlns")// || a.Value != String.Empty)
             el.SetAttributeNode(a);
 }
Esempio n. 3
0
        private void OnDataTableRowRollback(DataRowChangeEventArgs args)
        {
            if (!raiseDataSetEvents)
            {
                return;
            }
            bool escapedRaiseDocumentEvents = raiseDocumentEvents;

            raiseDocumentEvents = false;

            try {
                DataRow    r  = args.Row;
                XmlElement el = GetElementFromRow(r);
                if (el == null)
                {
                    return;
                }
                DataTable tab = r.Table;
                ArrayList al  = new ArrayList();
                foreach (XmlAttribute attr in el.Attributes)
                {
                    DataColumn col = tab.Columns [XmlHelper.Decode(attr.LocalName)];
                    if (col != null)
                    {
                        if (r.IsNull(col))
                        {
                            // should be removed
                            al.Add(attr);
                        }
                        else
                        {
                            attr.Value = r [col].ToString();
                        }
                    }
                }
                foreach (XmlAttribute attr in al)
                {
                    el.RemoveAttributeNode(attr);
                }
                al.Clear();
                foreach (XmlNode child in el.ChildNodes)
                {
                    if (child.NodeType == XmlNodeType.Element)
                    {
                        DataColumn col = tab.Columns [XmlHelper.Decode(child.LocalName)];
                        if (col != null)
                        {
                            if (r.IsNull(col))
                            {
                                al.Add(child);
                            }
                            else
                            {
                                child.InnerText = r [col].ToString();
                            }
                        }
                    }
                }
                foreach (XmlNode n in al)
                {
                    el.RemoveChild(n);
                }
            } finally {
                raiseDocumentEvents = escapedRaiseDocumentEvents;
            }
        }