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
WPF 关于XDocument(xml) 的部分操作记录的更多相关文章
- Odoo XML中操作记录与函数
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826037.html 一:XML文件中定义记录 XML中定义记录: 每个<record>元素有 ...
- Linq对XML的简单操作
前两章介绍了关于Linq创建.解析SOAP格式的XML,在实际运用中,可能会对xml进行一些其它的操作,比如基础的增删该查,而操作对象首先需要获取对象,针对于DOM操作来说,Linq确实方便了不少,如 ...
- nginx缓存配置的操作记录梳理
web缓存位于内容源Web服务器和客户端之间,当用户访问一个URL时,Web缓存服务器会去后端Web源服务器取回要输出的内容,然后,当下一个请求到来时,如果访问的是相同的URL,Web缓存服务器直接输 ...
- Nginx中防盗链(下载防盗链和图片防盗链)操作记录
日常运维工作中,设置防盗链的需求会经常碰到,这也是优化网站的一个必要措施.今天在此介绍Nginx中设置下载防盗链和图片防盗链的操作~ 一.Nginx中下载防盗链的操作记录对于一些站点上的下载操作,有很 ...
- SQL Server对Xml字段的操作
T-Sql操作Xml数据 一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和 ...
- openstack虚拟机迁移的操作记录
需求说明:计算节点linux-node1.openstack:192.168.1.8 计算节点linux-node2.openstack:192.168.1.17 这两个计算节点在同一个控制节点下( ...
- (转)SQL对Xml字段的操作
T-Sql操作Xml数据 一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和 ...
- SQL对Xml字段的操作
转:http://www.cnblogs.com/youring2/archive/2008/11/27/1342288.html T-Sql操作Xml数据 一.前言 SQL Server 2005 ...
- Mycat读写分离、主从切换、分库分表的操作记录
系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据库的处理本身优化也是非常重要的.主从.热备.分表分库等都是系统发展迟早会遇到的技术问题问题.Mycat是一 ...
随机推荐
- HALCON 简介
HALCON windowssolarisgccdelphilinux图像处理 ·满足您各类机器视觉应用需求的完善的开发库 ·包含匹配,识别,定位及1D,2D,3D测量等多种高级算法 ·强大,易用 ...
- Flask 框架下 Jinja2 模板引擎高层 API 类——Environment
Environment 类版本: 本文所描述的 Environment 类对应于 Jinja2-2.7 版本. Environment 类功能: Environment 是 Jinja2 中的一个 ...
- 【转】linux中的cut/tr/join/split/xargs命令
1. cut命令 cut命令用于从文件或者标准输入中读取内容并截取每一行的特定部分并送到标准输出. 截取的方式有三种:一是按照字符位置,二是按照字节位置,三是使用一个分隔符将一行分割成多个field, ...
- ALERT日志中常见监听相关报错之中的一个:ORA-609错误的排查
參考MOS文档有: Troubleshooting Guide ORA-609 : Opiodr aborting process unknown ospid (文档 ID 1121357.1) Al ...
- android判断当前应用程序处于前台还是后台
/** *判断当前应用程序处于前台还是后台 * * @param context * @return */ public static boolean ...
- Cummins INSITE locked and ask for verification code
Some Cummins INSITE users turn to our engineer with a same question: INSITE has detected an invalid ...
- android开发之路01
一.android系统被分为4个层次:1.最下层的是linux核心,包括多个驱动程序,提供了操作系统应该具备的核心功能:2.在linux核心之上,包括两个部分,一部分是Android Runtime( ...
- 常用CentOS 6/7 扩展源
1.系统自带 baseextrasupdates 2.epel yum install epel-release https://fedoraproject.org/wiki/EPEL 3.el(用于 ...
- C#如何加载程序运行目录外的程序集
我们的应用程序部署的时候,目录结构一般不会只有运行程序的目录这一个,我们可能在运行目录下建子目录,也可能使用System32目录,也可能使用其它第三方的程序集..Net程序集 首先会在GAC中搜索相应 ...
- 关于MapReduce
MapReduce是Google提出的一个软件架构,用于大规模数据集(大于1TB)的并行运算.概念“Map(映射)”和“Reduce(归纳)”,及他们的主要思想,都是从函数式编程语言借来的,还有从矢量 ...