zoukankan      html  css  js  c++  java
  • 读、写、查XML函数

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Xml;
    using System.Drawing;
    namespace AccessController
    {
        class ClassXMLAssgin
        {
            //const string XMLname = "assign.xml";
            const string FatherNode = "devicepoint";
            const string SubNode = "device";
            string path = null;
            public struct devicepoint
            {
                public int num;
                public string name;
                public Point  p ;
                public devicepoint(int number,string nam,Point pt)
                {
                    num = number;
                    name = nam;
                    p = new Point(0, 0);
                    p.X = pt.X;
                    p.Y = pt.Y;
                }
            };
            public ClassXMLAssgin()
            {
                path = AppDomain.CurrentDomain.BaseDirectory + @"XMLassign.xml";
            
            }
            public void writeToAssginXML(int num,string name,Point p)
            {
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(path);
                XmlNode root = xmlDoc.SelectSingleNode(FatherNode);
                XmlElement xe1 = xmlDoc.CreateElement(SubNode);
                xe1.SetAttribute("num", num.ToString());
                xe1.SetAttribute("Name", name);
    
                XmlElement xesub1 = xmlDoc.CreateElement("position");
                xesub1.SetAttribute("X", p.X.ToString());
                xesub1.SetAttribute("Y", p.Y.ToString());
                xe1.AppendChild(xesub1);//添加到<book>节点中
                
                root.AppendChild(xe1);
                xmlDoc.Save(path);
    
            }
            public void updateToAssginXML(string name, Point p)
            {
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(path);
                XmlNodeList nodeList = xmlDoc.SelectSingleNode(FatherNode).ChildNodes;
                foreach (XmlNode xn in nodeList)//遍历所有子节点
                {
                    XmlElement xe = (XmlElement)xn;//将子节点类型转换为XmlElement类型    
                    if (xe.GetAttribute("Name") == name.ToString())  
                    {
                        XmlElement xe1 = (XmlElement)xe;
                        XmlNodeList nls=xe1.ChildNodes;//继续获取xe子节点的所有子节点        
                        foreach (XmlNode xn1 in nls)//遍历         
                        {
                            XmlElement xe2 = (XmlElement)xn1;//转换类型              
                            if (xe2.Name == "position")//如果找到         
                            {
                                xe2.SetAttribute("X", p.X.ToString());
                                xe2.SetAttribute("Y", p.Y.ToString());
                                break;
                            }
    
                        }
                    }
                }
                xmlDoc.Save(path);//保存。
            }
            public void delFromAssginXML(int num)
            {
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(path);
                XmlNode fathernode = xmlDoc.SelectSingleNode(FatherNode);
                XmlNodeList xnl = xmlDoc.SelectSingleNode(FatherNode).ChildNodes;
                foreach (XmlNode xn in xnl)
                {
                    XmlElement xe = (XmlElement)xn;
                    if (xe.GetAttribute("num") == num.ToString())
                    {
                        fathernode.RemoveChild(xn);
                        //xe.RemoveAll();//删除该节点的全部内容   
                    }
                }
                xmlDoc.Save(path);
            }
            public string FindDeciveNameFromAssginXML(int num)
            {
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(path);
                XmlNode fathernode = xmlDoc.SelectSingleNode(FatherNode);
                XmlNodeList xnl = xmlDoc.SelectSingleNode(FatherNode).ChildNodes;
                string devicename = null;
                foreach (XmlNode xn in xnl)
                {
                    XmlElement xe = (XmlElement)xn;
                    if (xe.GetAttribute("num") == num.ToString())
                    {
                       devicename =  xe.GetAttribute("Name");
                        //xe.RemoveAll();//删除该节点的全部内容  
                       break;
                    }
                }
                xmlDoc.Save(path);
                return devicename;
            }
            public ArrayList getSetFromAssginXML()
            {
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(path);
                XmlNodeList xnl = xmlDoc.SelectSingleNode(FatherNode).ChildNodes;
                ArrayList nameList = new ArrayList();
                foreach (XmlNode xn in xnl)
                {
                    XmlElement xe = (XmlElement)xn;
                    XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点        
                    foreach(XmlNode xn1 in nls)//遍历         
                    {              
                        XmlElement xe2=(XmlElement)xn1;//转换类型              
                        if(xe2.Name=="position")//如果找到              
                        {
                            Point pt = new Point(int.Parse(xe2.GetAttribute("X")),int.Parse(xe2.GetAttribute("Y")));
                            devicepoint devicepoint = new ClassXMLAssgin.devicepoint(int.Parse(xe.GetAttribute("num")), xe.GetAttribute("Name"), pt);
                            nameList.Add(devicepoint);                
                            break;//找到就退出来           
                        }        
                    }    
                    
                }
                xmlDoc.Save(path);
                return nameList;
            }
        }
    }
  • 相关阅读:
    输出字体颜色 "<li><font color=red>" + ......+ "</font>"
    sass跨文件重写变量
    sass兼容IE8透明度方法
    关于CSS中对IE条件注释的问题
    css规范
    transition代替简单的animation注意事项
    zepto触摸事件解决方法
    fullpage.js小技巧
    php访问全局变量
    好的列表布局
  • 原文地址:https://www.cnblogs.com/zhumeng1582/p/3425825.html
Copyright © 2011-2022 走看看