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 有多个重复子节点操作相关推荐

  1. php遍历dom节点,详解PHP使用DOMDocument类遍历、增加、修改、删除XML节点操作

    Dom ( Document object model )文档 - 对象 - 模型,核心思想是把一个 Xml 文件看成一个对象模型,然后通过对象的方式来操作 Xml 文件.我们先总结出 DOM 对象的 ...

  2. OpenCV学习笔记(四):XML,YAML(.txt,.doc)文件读写操作

    OpenCV学习笔记(四):XML,YAML(.txt,.doc)文件读写操作 一.Write_XML_and_YAML_File(写入XML) #include <opencv2/opencv ...

  3. DOM获取元素、事件基础、操作元素、节点操作

    什么是DOM? 文档对象模型,是W3C组织推荐的处理可扩展标记语言(HTML 或者XML)的标准编程接口. W3C已经定义了一系列的DOM接口,通过这些DOM接口可以改变网页的内容,结构和样式. DO ...

  4. WebAPI第一天学习总结—— DOM、获取元素、事件基础、操作元素、节点操作

    Web API介绍 API的概念 API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访 ...

  5. 13前端学习之WebAPI(三):节点操作、事件高级、DOM事件流、事件委托冒泡

    文章目录 一.节点操作: 1. 删除节点: 1.2. 案例:删除留言 2. 赋值(克隆)节点: 3. 案例:动态生成表格: 3.1 案例分析: 3.2 实现: 4. 创建元素的三种方式: 4.1 区别 ...

  6. 双链表(插入节点操作)

    在双链表L中第i个位置插入值域为e的结点. 双链表的存储结构定义: typedef struct DLinkList{int data;DLinkList * prior;DLinkList * ne ...

  7. 18DOM之节点操作

    技术交流QQ群:1027579432,欢迎你的加入! 1.为什么学习节点操作 获取元素通常使用两种方式: (1).利用DOM提供的方法获取元素 document.getElementById() do ...

  8. 解析XML时,需要校验节点是否闭合,如必须有与之对应,用()数据结构实现比较好?

    解析XML时,需要校验节点是否闭合,如必须有与之对应,用()数据结构实现比较好? 答案:栈 (1)栈的常见应用:浏览器历史纪录,Android中的最近任务,Activity的启动模式,CPU中栈的实现 ...

  9. 事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流

    一.事件冒泡定义 事件冒泡是指在一个对象触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那 ...

  10. 04-老马jQuery教程-DOM节点操作及位置和大小

    1. jQuery创建DOM标签 1.1 DOM动态创建标签的方法 DOM时代我们通过document的createElement方法动态创建标签.创建标签后,动态的给他添加属性.例如代码: // 动 ...

最新文章

  1. Linux Kernel TCP/IP Stack — L3 Layer — netfilter/iptables 防火墙
  2. Python virtualenv激活与退出虚拟环境
  3. BZOJ-3473 (广义后缀自动机:拓扑 or 启发式合并)
  4. 老王学jsp之dom解析xml
  5. 意外分配– JIT编译抖动
  6. 知识点 组合数学 卡特兰数
  7. java质因数的分解_Java实现分解任意输入数的质因数算法示例
  8. error: No implicit Ordering defined for Any
  9. Python基础学习3——集合、文件、函数
  10. mysql 通过ssh通道安全连接数据库
  11. ESP8266使用入门教程
  12. php实现把二叉树打印成多行(谋而后动,写好算法思路,不然浪费超多时间而且还是错误代码,而且精力消耗会导致代码正确率下降以及低级错误)...
  13. PyQt5 基本语法(一):基类控件
  14. python获取交互式ssh shell
  15. 《批处理:节省时间,减轻压力的20个小技巧》读书笔记(其实是一篇文章)
  16. Qt扫盲-QSS概述
  17. mybatis-plus使用updateById更新数据不生效,需要使用lambdaUpdate
  18. 个人电脑如何搭服务器?家中自建服务器可行吗?需要哪些搭建条件
  19. 图文解说Quartus II使用入门
  20. 【科创人】慧安金科马宇翔:人生级决策总会选择有趣的选项,如今最在意平衡的生活...

热门文章

  1. 如何从wireshark 抓包中的RTP导出 H.264 PAYLOAD,变成可用暴风直接播放的H264 裸码流文件
  2. cgroup学习(七)——cpu子系统
  3. 概率论在实际生活的例子_「收藏」不确定度是什么?两个例子让你清清楚楚
  4. Horner法则,MurMurHash
  5. Binary Tree Right Side View 二叉树右视图
  6. java中的值传递与引用传递
  7. mac 黑窗口连接mysql_macOS -- Mac系统如何通过终端使用mysql
  8. 江苏专转本计算机考试模拟试卷,江苏专转本计算机模拟试题 11
  9. v3是c语言吗 yolo_你真的明白yolo v3吗?
  10. iis10 asp 如何连接mdb_网站500内部服务器错误如何解决 - 最蜘蛛池