WPF 关于XDocument(xml) 的部分操作记录

(1)删除xml文件中的一个结点的方法,有如下两种方式(只有存在数据绑定的情况下才会有第二种情况,否则一般是第一种情况);

private void DeletePacsNode()
        {
            //从xml文件中删除根节点的子节点的方式(两种)
            //(1)直接获得所有的子节点,然后根据条件判断从里面移除
            //XmlDocument xmlDoc = new XmlDocument();
            //xmlDoc.Load(@"..\..\Data\PacsConfig.xml");
            //var root = xmlDoc.DocumentElement;                  //获取文档的根
            //xmlDoc.Load(@"..\..\Data\PacsConfig.xml");
            //var nodes = xmlDoc.DocumentElement.ChildNodes;
            //foreach (var item in nodes)
            //{
            //    XmlNode temp = (XmlNode)item;
            //    if (temp["AETitle"].InnerText == SelectedPacsNode.AETitle)    //当该条件不唯一时,则需要把对应的能唯一确定该节点的判断条件均加上
            //        root.RemoveChild(temp);
            //}
            //xmlDoc.Save(@"..\..\Data\PacsConfig.xml");
            //(2)清空xml文件,并从绑定的数据集合中移除相应的元素,再将剩下的元素重新存入xml文件
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(@"..\..\Data\PacsConfig.xml");
            PacsNodeView.Remove(SelectedPacsNode);              //从绑定的数据集合中移除选择的元素
            //var element = xmlDoc.SelectSingleNode(SelectedPacsNode.AETitle);
            XmlNode root = xmlDoc.SelectSingleNode("PACS");                 //查找<PACS>
            root.RemoveAll();                                   //清空xml,删除所有节点
            foreach (var item in PacsNodeView)
            {
                XmlElement xe1 = xmlDoc.CreateElement("PacsNode");                  //创建一个<PacsNode>节点
                XmlElement xesub1 = xmlDoc.CreateElement("AETitle");
                xesub1.InnerText = item.AETitle;                            //设置文本节点
                xe1.AppendChild(xesub1);                                                  //添加到<book>节点中
                XmlElement xesub2 = xmlDoc.CreateElement("HostIP");
                xesub2.InnerText = item.HostIP;
                xe1.AppendChild(xesub2);
                XmlElement xesub3 = xmlDoc.CreateElement("Port");
                xesub3.InnerText = item.Port;
                xe1.AppendChild(xesub3);
                XmlElement xesub4 = xmlDoc.CreateElement("HostName");
                xesub4.InnerText = item.HostName;
                xe1.AppendChild(xesub4);
                //root.RemoveChild(xe1);
                root.AppendChild(xe1);
            }
            xmlDoc.Save(@"..\..\Data\PacsConfig.xml");
            this.LoadData();
        }

  加载数据的方法如下:

//关于数据绑定部分的添加绑定数据集合内容的方法
private void LoadData()
        {
            PacsNodeView.Clear();
            var TempData = GetAllNodes();
            foreach (var temp in TempData)
            {
                PacsNode pNode = new PacsNode();
                pNode.AETitle = temp.AETitle;
                pNode.HostIP = temp.HostIP;
                pNode.Port = temp.Port;
                pNode.HostName = temp.HostName;
                PacsNodeView.Add(pNode);
            }
        }

  从xml文件读取数据的方法如下:

//从xml中获取所有节点的信息
private List<PacsNode> GetAllNodes()
        {
            List<PacsNode> PacsNodes = new List<PacsNode>();
            string xmlFileName = @"..\..\Data\PacsConfig.xml";
            XDocument xDoc = XDocument.Load(xmlFileName);
            var Nodes = xDoc.Descendants("PacsNode");
            foreach (var n in Nodes)
            {
                PacsNode pNode = new PacsNode();
                var temp = n.Element("AETitle").Value;
                pNode.AETitle = n.Element("AETitle").Value;
                pNode.HostIP = n.Element("HostIP").Value;
                pNode.Port = n.Element("Port").Value;
                pNode.HostName = n.Element("HostName").Value;
                PacsNodes.Add(pNode);
            }
            return PacsNodes;
        }

(2)可参考的学习链接:http://blog.csdn.net/figerdeng/article/details/19031975

时间: 2024-10-05 23:37:34

WPF 关于XDocument(xml) 的部分操作记录的相关文章

mysql-常用操作记录

之前安装在mysql-hive里写过,这里记录下用到过的命令. 1.查看配置文件:依次查找多个需要查找的文件,结果是所有文件的交集,如果某个参数在多个文件中出现多次,后配置的最终生效 2.可以用以下命令查看当前数据库的全局变量和会话变量 > show global variables; > show session variables; 3.删除所有匿名用户 > drop user ''@'localhost'; 4.给所有的root用户设定密码 第一种方法 > set passw

(轉載)sql server xml字段的操作

原文轉自:http://blog.csdn.net/hliq5399/article/details/8315373 今天用到sql server 的xml字段,首先这个项目中的xml字段都存为了ntext字段,所以第一个操作 ntext 转化为 xml 以下摘自 http://blog.darkthread.net/blogs/darkthreadtw/archive/2008/09/18/sql2005-nvarchar-to-xml.aspx XmlString是一個NText欄位,裡面放

(转)SQL对Xml字段的操作

T-Sql操作Xml数据 一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和参数.为了更好地支持 XML 模型特征(例如文档顺序和递归结构),XML 值以内部格式存储为大型二进制对象 (BLOB). 用户将一个XML数据存入数据库的时候,可以使用这个XML的字符串,SQL Server会自动的将这个字符串转化为XML类型,并存储到数据库中. 随着SQL Server 对XM

SQL对Xml字段的操作

原文:SQL对Xml字段的操作 T-Sql操作Xml数据 一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和参数.为了更好地支持 XML 模型特征(例如文档顺序和递归结构),XML 值以内部格式存储为大型二进制对象 (BLOB). 用户将一个XML数据存入数据库的时候,可以使用这个XML的字符串,SQL Server会自动的将这个字符串转化为XML类型,并存储到数据库中.

LVS+NGINX+TOMCAT_集群实施操作记录.docx

LVS IP: Eth0:192.168.100.115 Eth1:192.168.100.215 Vi  /etc/init.d./lvs #!/bin/sh # # lvs      Start lvs # # chkconfig: 2345 08 92 # description:  Starts, stops and saves lvs # SNS_VIP=192.168.100.215 SNS_RIP1=192.168.100.114 SNS_RIP2=192.168.100.113

修改SolrCloud在ZooKeeper中的配置文件操作记录

修改SolrCloud在ZooKeeper中的配置文件操作记录. 命令执行目录: /opt/solr-5.5.4/server/scripts/cloud-scripts/ 1.下载配置文件 ./zkcli.sh -zkhost 172.16.xxx.xx:2181,172.16.xxx.xx:2181,172.16.xxx.xx:2181 -cmd getfile /configs/myconf/managed-schema /home/application/managed-schema .

mysql表名等大小写敏感问题、字段类型timestamp、批量修改表名、oracle查询历史操作记录等

mysql表名等大小写敏感问题:http://blog.csdn.net/postnull/article/details/72455768: 1 MySQL在Linux下数据库名.表名.列名.别名大小写规则是这样的: 2 1.数据库名与表名是严格区分大小写的: 3 2.表的别名是严格区分大小写的: 4 3.列名与列的别名在所有的情况下均是忽略大小写的: 5 4.字段内容默认情况下是大小写不敏感的. ================================================

SQL Server 审计功能-记录所有的操作记录

SQL Server 审计-记录所有的操作记录 说到审计这个话题,相信作为一个企业管理员都知道,比如一般作为一个AD管理员的话,一般都会通过Policy开启审计功能,记录一些自定义的事务日志.对于SQL Server来说,审计也是一样的,SQL Server审计对象收集单个实例的服务器或数据库级的动作和行为监控组. 审计是在SQL Server实例级. 可以有多个审计/ SQL服务器实例.当你定义一个审计,你指定位置的输出结果. 这是审计目标. 审计是在创建的禁用状态,不会自动审计任何行动. 启

Mysql备份系列(4)--lvm-snapshot备份mysql数据(全量+增量)操作记录

Mysql最常用的三种备份工具分别是mysqldump.Xtrabackup(innobackupex工具).lvm-snapshot快照.前面分别介绍了:Mysql备份系列(1)--备份方案总结性梳理Mysql备份系列(2)--mysqldump备份(全量+增量)方案操作记录Mysql备份系列(3)--innobackupex备份mysql大数据(全量+增量)操作记录 废话不多说,下面即是使用lvm-snapshot快照方式备份mysql的操作记录,仅依据本人实验中使用而述. 操作记录:如下环