c# XML 有多个重复子节点操作
1,继续添加ebm子节点
- public static void CreateXml()
- {
- //创XML建对象
- XmlDocument doc = new XmlDocument();
- //声明根节点
- XmlElement books;
- //判断文件是否存在
- if (File.Exists("d://Test.xml"))
- {
- //该文件存在
- //加载文件
- doc.Load("d://Test.xml");
- //获得根节点
- books = doc.DocumentElement;
- }
- else//该文件不存在
- {
- //创建声明
- XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
- doc.AppendChild(dec);
- //创建根节点
- books = doc.CreateElement("EBD");
- doc.AppendChild(books);
- }
- //开始正常写入信息就可以了
- XmlElement xml = doc.CreateElement("EBM");
- books.AppendChild(xml);
- XmlElement ebmId = doc.CreateElement("EBMID");
- ebmId.InnerText = "1";
- xml.AppendChild(ebmId);
- XmlElement areaCode = doc.CreateElement("AreaCode");
- areaCode.InnerText = "360699999901";
- xml.AppendChild(areaCode);
- XmlElement startTime = doc.CreateElement("StartTime");
- startTime.InnerText = "2018-07-26 9:06:04";
- xml.AppendChild(startTime);
- XmlElement endTime = doc.CreateElement("EndTime");
- endTime.InnerText = "2018-07-26 7:22:04";
- xml.AppendChild(endTime);
- XmlElement msgType = doc.CreateElement("MsgType");
- msgType.InnerText = "1";
- xml.AppendChild(msgType);
- doc.Save("d://Test.xml");
- }
2, 修改某个子节点(通过EBMID确定具体的节点)
- public static void UpdateXmlForEBMID(string ebmId)
- {
- XmlDocument xmlDoc = new XmlDocument();
- xmlDoc.Load("d://Test.xml");
- var xns = xmlDoc.SelectSingleNode("EBD");
- XmlNodeList xnl = xns.ChildNodes;
- foreach(XmlNode xn in xnl )
- {
- XmlElement xe = (XmlElement)xn;
- XmlNodeList xnl2 = xe.ChildNodes;
- foreach (XmlNode xn2 in xnl2)
- {
- XmlElement xe2 = (XmlElement)xn2;
- if (xe2.InnerText.Equals(ebmId))
- {
- XmlNodeList elemList = xe.GetElementsByTagName("MsgType");
- elemList[0].InnerXml = "2";
- }
- break;
- }
- //break;//如果更新完了指定节点,有需要则退出循环
- }
- xmlDoc.Save("d://Test.xml");//保存的该XML文件,否则更新无效
- }
3,读取某个子节点下的所有属性值(这边也是通过EBMID去匹配)
- public static void ReadXMLForLog(string xmlPath,string ebmId)
- {
- XmlDocument xmlDoc = new XmlDocument();
- xmlDoc.Load("d://Test.xml");
- var xns = xmlDoc.SelectSingleNode("EBD");
- XmlNodeList xnl = xns.ChildNodes;
- Dictionary<string, string> obj = new Dictionary<string, string>();
- foreach (XmlNode xn in xnl)
- {
- XmlElement xe = (XmlElement)xn;
- XmlNodeList xnl2 = xe.ChildNodes;
- foreach (XmlNode xn2 in xnl2)
- {
- XmlElement xe2 = (XmlElement)xn2;
- if (xe2.InnerText.Equals("2"))
- {
- var objs = new {
- EBMID = xe.GetElementsByTagName("EBMID"),
- AreaCode = xe.GetElementsByTagName("AreaCode"),
- StartTime= xe.GetElementsByTagName("StartTime"),
- EndTime = xe.GetElementsByTagName("EndTime"),
- MsgType = xe.GetElementsByTagName("MsgType"),
- };
- string ebmIdValue = objs.EBMID[0].InnerText;
- }
- break;
- }
- }
- }
c# XML 有多个重复子节点操作的更多相关文章
- 用TinyXml做XML解析示例 TinyXml查找唯一节点及修改节点操作
// 读者对象:对TinyXml有一定了解的人.本文是对TinyXml工具的一些知识点的理解. // 1 TinyXml中对TiXmlNode进行了分类,是用一个枚举进行描述的. // enum No ...
- JavaScript 节点操作Dom属性和方法(转)
JavaScript 节点操作Dom属性和方法 一些常用的dom属性和方法,列出来作为手册用. 属性: 1.Attributes 存储节点的属性列表(只读) 2.childNodes 存储 ...
- ORACLE 11gR2 RAC添加删除(正常及强制)节点操作步骤(删除篇)
ORACLE 11gR2 RAC添加删除(正常及强制)节点操作步骤(删除篇) 本文主要转载 [ http://www.cnxdug.org/?p=2511 ] 有部分细节自己实验添加,再此谢谢前辈. ...
- 【转】JavaScript 节点操作 以及DOMDocument属性和方法
最近发现DOMDocument对象很重要,还有XMLHTTP也很重要 注意大小写一定不能弄错. 属性: 1Attributes 存储节点的属性列表(只读) 2childNodes 存储节点的子节点列表 ...
- JavaScript 之 节点操作
一.文档树结构 DOM 可以将任何 HTML 或 XML 描绘成一个由多层节点构成的结构. 节点分为不同的类型,每种类型分别表示文档中不同的信息.每个节点都拥有各自的特点.数据和方法,另外也与其他节点 ...
- JavaScript之DOM操作,事件操作,节点操作
1,DOM操作 1.1 概念 所谓DOM,全称Document Object Model 文档对象模型,DOM是W3C(World Wide Web Consortuum )标准,同时也定义了访问诸 ...
- HTML节点操作
HTML节点操作 HTML节点的基本操作,添加节点,替换节点,删除节点,绑定事件,访问子节点,访问父节点,访问兄弟节点. 文档对象模型Document Object Model,简称DOM,是W3C组 ...
- 深入理解DOM节点操作
× 目录 [1]创建节点 [2]插入节点 [3]移除节点[4]替换节点[5]复制节点 前面的话 一般地,提起操作会想到“增删改查”这四个字,而DOM节点操作也类似地对应于此,接下来将详细介绍DOM的节 ...
- 深入学习jQuery节点操作
× 目录 [1]创建节点 [2]插入节点 [3]删除节点[4]复制节点[5]替换节点[6]包裹节点 前面的话 DOM节点操作包括创建节点.插入节点.移除节点.替换节点和复制节点.jQuery也有类似的 ...
随机推荐
- 一次典型的TFS故障处理:域控失联
问题描述 突然收到客户报告,开发人员登录TFS系统时,出现登录异常现象.即使输入了正确的账户和密码,TFS系统任然提示重新登录的页面,导致用户无法打开TFS系统. 即使登录成功,在修改代码或者修改工作 ...
- ASP .Net C# ---CSV导入导出
CSV和Excel大致相同 复制下来 数据传到方法里面就可以了 /// <summary> /// DataTable数据写入CSV文件 /// </summary> /// ...
- 新品成熟EMR源码电子病历系统软件NET网络版CS可用带数据库全文档
查看电子病历系统演示 医院医疗信息管理系统,EMR电子病历系统,功能模块如下所示: 1.住院医生站 2.住院护士站 3.病案浏览工作站 4.质量控制工作站 5.系统维护工作站 本店出售系统全套源码, ...
- C# Winform模仿百度日历
想写博客不知道从何处开始,就从回忆开始吧. 第一个就从自定义日历控件开始 产生背景: 大概2015年时候有个项目要用到日历,用默认日历展示给用户看,用户毫不客气都说界面太丑,最好做成像百度日历那样方便 ...
- Entity Framework Core 生成跟踪列-阴影属性
摘自:https://www.cnblogs.com/tdfblog/p/entity-framework-core-generate-tracking-columns.html Ef Core 官方 ...
- CentOS 7 - 创建新用户
当进行服务器操作时,我们尽量不要使用root用户进行操作,特别是当我们使用生产环境时. 本文我们将介绍CentOS 7下用户的创建. 创建新用户 adduser 用户名 更改用户密码 passwd 用 ...
- BZOJ2178: 圆的面积并(格林公式)
题面 传送门 题解 好神仙-- 先给几个定义 平面单连通区域:设\(D\)是平面内一区域,若属于\(D\)内任一简单闭曲线的内部都属于\(D\),则称\(D\)为单连通区域.通俗地说,单连通区域是没有 ...
- Eclipse 导入本地 Git 项目
File --> Open Projects From File System 选择项目路径 Finish
- pinnet 计算云分区
fdisk /dev/xvdemne mnlEnterEnter 9G-98G-98G-478M-28G-28G-28G mw #设置文件格式mkfs -t ext4 /dev/xvde5mkfs - ...
- webApp开发中的总结
meta标签: H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 <meta name="viewport" content="width=device-wid ...