Пример #1
0
        /// <summary>
        /// Gives the collection of "xmlns" attributes of the "rdf:RDF" root node
        /// </summary>
        internal static XmlAttributeCollection GetXmlnsNamespaces(XmlNode rdfRDF, XmlNamespaceManager nsMgr)
        {
            XmlAttributeCollection xmlns = rdfRDF.Attributes;

            if (xmlns != null && xmlns.Count > 0)
            {
                IEnumerator iEnum = xmlns.GetEnumerator();
                while (iEnum != null && iEnum.MoveNext())
                {
                    XmlAttribute attr = (XmlAttribute)iEnum.Current;
                    if (attr.LocalName.ToUpperInvariant() != "XMLNS")
                    {
                        //Try to resolve the current namespace against the namespace register;
                        //if not resolved, create new namespace with scope limited to actual node
                        RDFNamespace ns =
                            (RDFNamespaceRegister.GetByPrefix(attr.LocalName) ??
                             RDFNamespaceRegister.GetByNamespace(attr.Value) ??
                             new RDFNamespace(attr.LocalName, attr.Value));

                        nsMgr.AddNamespace(ns.Prefix, ns.Namespace.ToString());
                    }
                }
            }
            return(xmlns);
        }
Пример #2
0
        private void ProcessMemento(IMemento memento, XmlNode xmlnode)
        {
            //1.循环获取属性信息
            XmlAttributeCollection xmlAttributes  = xmlnode.Attributes;
            IEnumerator            attrEnumerator = xmlAttributes.GetEnumerator();

            while (attrEnumerator.MoveNext())
            {
                XmlAttribute xmlAttribute = (XmlAttribute)attrEnumerator.Current;
                if (!String.IsNullOrEmpty(xmlAttribute.Value))
                {
                    memento.SetString(xmlAttribute.Name, xmlAttribute.Value);
                }
            }

            //2.递归进行ChildMemento处理,需要创建ChildMemento对象
            XmlNodeList childrenNodes  = xmlnode.ChildNodes;
            IEnumerator nodeEnumerator = childrenNodes.GetEnumerator();

            while (nodeEnumerator.MoveNext())
            {
                XmlNode childNode = (XmlNode)nodeEnumerator.Current;
                if (childNode.NodeType != XmlNodeType.Comment)
                {
                    IMemento childMemento = memento.CreateChild(childNode.Name);
                    ProcessMemento(childMemento, childNode);
                }
            }
        }
Пример #3
0
        private static XmlNodeList SelectAllAttributes(XmlNode parentNode)
        {
            XmlAttributeCollection attributes = parentNode.Attributes;

            if (attributes.Count == 0)
            {
                OnNoMatchingNode("@*");
                return(null);
            }
            else if (attributes.Count == 1)
            {
                XmlPatchNodeList nodeList = new SingleNodeList();
                nodeList.AddNode(attributes.Item(0));
                return(nodeList);
            }
            else
            {
                IEnumerator      enumerator = attributes.GetEnumerator();
                XmlPatchNodeList nodeList   = new MultiNodeList();
                while (enumerator.MoveNext())
                {
                    nodeList.AddNode((XmlNode)enumerator.Current);
                }
                return(nodeList);
            }
        }
Пример #4
0
        public static void InjectNode(XmlNode node, XmlTextWriter xtw, bool writeEnclosingNode, bool writeAttributes)
        {
            try
            {
                switch (node.NodeType)
                {
                case XmlNodeType.Text:
                    xtw.WriteString(node.Value);
                    break;

                case XmlNodeType.Element:
                    if (writeEnclosingNode)
                    {
                        xtw.WriteStartElement(node.LocalName);
                    }
                    if (writeAttributes)
                    {
                        XmlAttributeCollection attrColl = node.Attributes;
                        if (attrColl != null)
                        {
                            IEnumerator attrEnum = attrColl.GetEnumerator();
                            while (attrEnum.MoveNext())
                            {
                                XmlAttribute attr = (XmlAttribute)attrEnum.Current;
                                xtw.WriteAttributeString(attr.Prefix, attr.LocalName, null, attr.Value);
                            }
                        }
                    }

                    if (node.HasChildNodes)
                    {
                        XmlNodeList nodeList = node.ChildNodes;
                        IEnumerator nodeEnum = nodeList.GetEnumerator();
                        while (nodeEnum.MoveNext())
                        {
                            XmlNode currNode = (XmlNode)nodeEnum.Current;
                            InjectNode(currNode, xtw, true, true);
                        }
                    }
                    if (writeEnclosingNode)
                    {
                        xtw.WriteEndElement();
                    }
                    break;

                default:
                    break;
                }
            }
            catch (XmlException e)
            {
                throw new XmlException("Error in Util", e);
            }
        }
Пример #5
0
        public static void CSharpXmlCodeGenerator(XmlNode node, StreamWriter sw, string xmlWriterName)
        {
            try
            {
                switch (node.NodeType)
                {
                case XmlNodeType.Text:
                    sw.WriteLine(xmlWriterName + ".WriteString(\"" + node.Value + "\");");
                    break;

                case XmlNodeType.Element:
                    sw.WriteLine(xmlWriterName + ".WriteStartElement(\"" + node.LocalName + "\");");
                    XmlAttributeCollection attrColl = node.Attributes;
                    if (attrColl != null)
                    {
                        IEnumerator attrEnum = attrColl.GetEnumerator();
                        while (attrEnum.MoveNext())
                        {
                            XmlAttribute attr = (XmlAttribute)attrEnum.Current;
                            sw.WriteLine(xmlWriterName + ".WriteAttributeString(\"" +
                                         attr.Prefix + "\", \"" +
                                         attr.LocalName + "\", " +
                                         "null" + ", \"" +
                                         attr.Value + "\");");
                        }
                    }
                    if (node.HasChildNodes)
                    {
                        XmlNodeList nodeList = node.ChildNodes;
                        IEnumerator nodeEnum = nodeList.GetEnumerator();
                        while (nodeEnum.MoveNext())
                        {
                            XmlNode currNode = (XmlNode)nodeEnum.Current;
                            CSharpXmlCodeGenerator(currNode, sw, xmlWriterName);
                        }
                    }
                    sw.WriteLine(xmlWriterName + ".WriteEndElement();");
                    break;
                }
            }
            catch (XmlException e)
            {
                throw new XmlException("Error in Util", e);
            }
        }
Пример #6
0
 private void createAttribute(XmlAttributeCollection attributeCollection, XmlTextWriter writer)
 {
     if (attributeCollection != null)
     {
         IEnumerator ienum = attributeCollection.GetEnumerator();
         while (ienum.MoveNext())
         {
             XmlAttribute xmlAttribute = (XmlAttribute)ienum.Current;
             try
             {
                 writer.WriteAttributeString(xmlAttribute.Name, xmlAttribute.Value);
             }
             catch (Exception exception)
             {
                 throw new Exception("Failed to process attributes.", exception);
             }
         }
     }
 }
    public static void Main()
    {
        XmlDocument doc = new XmlDocument();

        doc.LoadXml("<book genre='novel' publicationdate='1997' " +
                    "      ISBN='1-861001-57-5'>" +
                    "  <title>Pride And Prejudice</title>" +
                    "</book>");

        XmlAttributeCollection attrColl = doc.DocumentElement.Attributes;

        Console.WriteLine("Display all the attributes for this book...");
        IEnumerator ienum = attrColl.GetEnumerator();

        while (ienum.MoveNext())
        {
            XmlAttribute attr = (XmlAttribute)ienum.Current;
            Console.WriteLine("{0} = {1}", attr.Name, attr.Value);
        }
    }
Пример #8
0
        //passed an xml node
        //returns - true - element contains attribute where Name = "name" and Value = "CONTENTS"
        //          false - otherwise
        //returns value of the Name attribute in nameValue
        public bool CheckForContents(XmlNode xNode, ref string nv)
        {
            XmlAttributeCollection ac = xNode.Attributes;
            IEnumerator            ie = ac.GetEnumerator();

            nv = "";
            while (ie.MoveNext())
            {
                XmlAttribute xa = (XmlAttribute)ie.Current;
                if (xa.Name.Equals("name"))
                {
                    nv = xa.Value;
                    if (nv.Equals("CONTENTS"))
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
Пример #9
0
        private void InitDataGridView()
        {
            List <ConnectionInfo> result = new List <ConnectionInfo>();

            XmlOp xml         = new XmlOp(configPath);
            var   connectInfo = new ConnectionInfo();
            var   root        = xml.GetXmlRoot();
            var   nodeList    = root.GetEnumerator();

            while (nodeList.MoveNext())
            {
                XmlAttributeCollection temp = ((XmlNode)nodeList.Current).Attributes;
                var subNode = temp.GetEnumerator();
                var conNode = new ConnectionInfo();
                while (subNode.MoveNext())
                {
                    XmlAttribute attribute = (XmlAttribute)subNode.Current;
                    if (attribute.Name == "ip")
                    {
                        conNode.地址 = attribute.Value;
                    }
                }
                conNode.用户名 = xml.GetXmlNodeValue(@"/servers/server[@ip='" + conNode.地址 + "']/UserName");
                conNode.文件名 = xml.GetXmlNodeValue(@"/servers/server[@ip='" + conNode.地址 + "']/FileName");
                conNode.密码  = xml.GetXmlNodeValue(@"/servers/server[@ip='" + conNode.地址 + "']/PassWord");
                conNode.备注  = xml.GetXmlNodeValue(@"/servers/server[@ip='" + conNode.地址 + "']/Remark");
                result.Add(conNode);
            }
            dataGridView1.DataSource          = result;
            dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
            DataGridViewButtonColumn connectBtn = new DataGridViewButtonColumn();

            connectBtn.HeaderText = "远程登录";
            connectBtn.Text       = "远程登录";
            connectBtn.UseColumnTextForButtonValue = true;
            connectBtn.AutoSizeMode =
                DataGridViewAutoSizeColumnMode.AllCells;
            connectBtn.FlatStyle = FlatStyle.Standard;
            connectBtn.CellTemplate.Style.BackColor = Color.Honeydew;
            dataGridView1.Columns.Add(connectBtn);

            DataGridViewButtonColumn closeBtn = new DataGridViewButtonColumn();

            closeBtn.HeaderText = "远程关机";
            closeBtn.Text       = "远程关机";
            closeBtn.UseColumnTextForButtonValue = true;
            closeBtn.AutoSizeMode =
                DataGridViewAutoSizeColumnMode.AllCells;
            closeBtn.FlatStyle = FlatStyle.Standard;
            closeBtn.CellTemplate.Style.BackColor = Color.Honeydew;
            dataGridView1.Columns.Add(closeBtn);


            DataGridViewButtonColumn pingBtn = new DataGridViewButtonColumn();

            pingBtn.HeaderText = "Ping";
            pingBtn.Text       = "Ping";
            pingBtn.UseColumnTextForButtonValue = true;
            pingBtn.AutoSizeMode =
                DataGridViewAutoSizeColumnMode.AllCells;
            pingBtn.FlatStyle = FlatStyle.Standard;
            pingBtn.CellTemplate.Style.BackColor = Color.Honeydew;
            dataGridView1.Columns.Add(pingBtn);

            DataGridViewImageColumn imageCell = new DataGridViewImageColumn();

            imageCell.HeaderText   = "状态";
            imageCell.Image        = Image.FromFile(Application.StartupPath + @"\Resources\red.jpg");
            imageCell.AutoSizeMode =
                DataGridViewAutoSizeColumnMode.AllCells;
            dataGridView1.Columns.Add(imageCell);
        }
Пример #10
0
 public virtual IEnumerator GetEnumerator()
 {
     return(nodeMap.GetEnumerator());
 }
Пример #11
0
        private void LoadSettings(SettingsViewModel model)
        {
            // Load defaults

            // Load settings
            XmlDocument settingsDoc = App.settingsDoc;

            try { settingsDoc.Load(fileSettingsXMLPath); }
            catch (XmlException e)
            {
                System.Diagnostics.Debug.WriteLine("Error loading settings: " + e.Message);
                return;
            }
            catch (FileNotFoundException e)
            {
                System.Diagnostics.Debug.WriteLine("Error loading settings: " + e.Message);
                return;
            }

            IEnumerator docChildNodes = settingsDoc.ChildNodes.GetEnumerator();

            while (docChildNodes.MoveNext())
            {
                XmlNode currentNode = (docChildNodes.Current as XmlNode);
                if (currentNode.Name == "settings")
                {
                    IEnumerator docNodes = currentNode.ChildNodes.GetEnumerator();

                    while (docNodes.MoveNext())
                    {
                        XmlNode currentSubNode = (docNodes.Current as XmlNode);
                        Setting setting        = new Setting();
                        XmlAttributeCollection currentAttrib = currentSubNode.Attributes;

                        string name = currentAttrib.GetNamedItem("name").Value ?? "";
                        Debug.WriteLine(name);
                        string value = currentAttrib.GetNamedItem("value").Value ?? "";
                        Debug.WriteLine(value);
                        string description = currentAttrib.GetNamedItem("description").Value ?? "";
                        Debug.WriteLine(description);

                        IEnumerator attributes = currentAttrib.GetEnumerator();
                        while (attributes.MoveNext())
                        {
                            XmlAttribute attr = (attributes.Current as XmlAttribute);
                            Debug.WriteLine("Attribute");
                            Debug.WriteLine(attr.Name);
                            Debug.WriteLine(attr.Value);
                        }

                        switch (currentSubNode.Name)
                        {
                        case "string":
                        {
                            setting = new StringSetting(name, value, description);
                            break;
                        }

                        /*case "int":// TODO cast string to int
                         *  {
                         *      setting = new IntSetting(name, value, description);
                         *      break;
                         *  }*/
                        case "toggle":
                        {
                            setting = new ToggleSetting(name, (value == "true"), description);
                            break;
                        }

                        default:
                        {
                            Debug.WriteLine("DEFAULT");
                            Debug.WriteLine(name + value + description);
                            Debug.WriteLine(currentSubNode.Name);
                            Debug.WriteLine(setting.Name + setting.Value + setting.Description);
                            break;
                        }
                        }
                        Debug.WriteLine(setting.ToString());
                        model.Settings.Add(setting);
                    }
                }
            }
        }