(1)删除xml文件中的一个结点的方法,有如下两种方式(只有存在数据绑定的情况下才会有第二种情况,否则一般是第一种情况);
private void DeletePacsNode() { //从xml文件中删除根节点的子节点的方式(两种) //(1)直接获得所有的子节点,然后根据条件判断从里面移除 //XmlDocument xmlDoc = new XmlDocument(); //xmlDoc.Load(@"....DataPacsConfig.xml"); //var root = xmlDoc.DocumentElement; //获取文档的根 //xmlDoc.Load(@"....DataPacsConfig.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(@"....DataPacsConfig.xml"); //(2)清空xml文件,并从绑定的数据集合中移除相应的元素,再将剩下的元素重新存入xml文件 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(@"....DataPacsConfig.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(@"....DataPacsConfig.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 = @"....DataPacsConfig.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