1,继续添加ebm子节点

  1. public static void CreateXml()
  2. {
  3. //创XML建对象
  4. XmlDocument doc = new XmlDocument();
  5. //声明根节点
  6. XmlElement books;
  7. //判断文件是否存在
  8. if (File.Exists("d://Test.xml"))
  9. {
  10. //该文件存在
  11. //加载文件
  12. doc.Load("d://Test.xml");
  13. //获得根节点
  14. books = doc.DocumentElement;
  15.  
  16. }
  17. else//该文件不存在
  18. {
  19. //创建声明
  20. XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
  21. doc.AppendChild(dec);
  22. //创建根节点
  23. books = doc.CreateElement("EBD");
  24. doc.AppendChild(books);
  25. }
  26.  
  27. //开始正常写入信息就可以了
  28. XmlElement xml = doc.CreateElement("EBM");
  29. books.AppendChild(xml);
  30.  
  31. XmlElement ebmId = doc.CreateElement("EBMID");
  32. ebmId.InnerText = "1";
  33. xml.AppendChild(ebmId);
  34.  
  35. XmlElement areaCode = doc.CreateElement("AreaCode");
  36. areaCode.InnerText = "360699999901";
  37. xml.AppendChild(areaCode);
  38.  
  39. XmlElement startTime = doc.CreateElement("StartTime");
  40. startTime.InnerText = "2018-07-26 9:06:04";
  41. xml.AppendChild(startTime);
  42.  
  43. XmlElement endTime = doc.CreateElement("EndTime");
  44. endTime.InnerText = "2018-07-26 7:22:04";
  45. xml.AppendChild(endTime);
  46.  
  47. XmlElement msgType = doc.CreateElement("MsgType");
  48. msgType.InnerText = "1";
  49. xml.AppendChild(msgType);
  50.  
  51. doc.Save("d://Test.xml");
  52. }

2, 修改某个子节点(通过EBMID确定具体的节点)

  1. public static void UpdateXmlForEBMID(string ebmId)
  2. {
  3. XmlDocument xmlDoc = new XmlDocument();
  4. xmlDoc.Load("d://Test.xml");
  5. var xns = xmlDoc.SelectSingleNode("EBD");
  6. XmlNodeList xnl = xns.ChildNodes;
  7. foreach(XmlNode xn in xnl )
  8. {
  9. XmlElement xe = (XmlElement)xn;
  10. XmlNodeList xnl2 = xe.ChildNodes;
  11. foreach (XmlNode xn2 in xnl2)
  12. {
  13. XmlElement xe2 = (XmlElement)xn2;
  14.  
  15. if (xe2.InnerText.Equals(ebmId))
  16. {
  17. XmlNodeList elemList = xe.GetElementsByTagName("MsgType");
  18. elemList[0].InnerXml = "2";
  19. }
  20. break;
  21. }
  22. //break;//如果更新完了指定节点,有需要则退出循环
  23. }
  24. xmlDoc.Save("d://Test.xml");//保存的该XML文件,否则更新无效
  25. }

3,读取某个子节点下的所有属性值(这边也是通过EBMID去匹配)

  1. public static void ReadXMLForLog(string xmlPath,string ebmId)
  2. {
  3. XmlDocument xmlDoc = new XmlDocument();
  4. xmlDoc.Load("d://Test.xml");
  5. var xns = xmlDoc.SelectSingleNode("EBD");
  6. XmlNodeList xnl = xns.ChildNodes;
  7. Dictionary<string, string> obj = new Dictionary<string, string>();
  8.  
  9. foreach (XmlNode xn in xnl)
  10. {
  11. XmlElement xe = (XmlElement)xn;
  12. XmlNodeList xnl2 = xe.ChildNodes;
  13.  
  14. foreach (XmlNode xn2 in xnl2)
  15. {
  16. XmlElement xe2 = (XmlElement)xn2;
  17. if (xe2.InnerText.Equals("2"))
  18. {
  19. var objs = new {
  20. EBMID = xe.GetElementsByTagName("EBMID"),
  21. AreaCode = xe.GetElementsByTagName("AreaCode"),
  22. StartTime= xe.GetElementsByTagName("StartTime"),
  23. EndTime = xe.GetElementsByTagName("EndTime"),
  24. MsgType = xe.GetElementsByTagName("MsgType"),
  25. };
  26. string ebmIdValue = objs.EBMID[0].InnerText;
  27. }
  28. break;
  29. }
  30. }
  31. }

c# XML 有多个重复子节点操作的更多相关文章

  1. 用TinyXml做XML解析示例 TinyXml查找唯一节点及修改节点操作

    // 读者对象:对TinyXml有一定了解的人.本文是对TinyXml工具的一些知识点的理解. // 1 TinyXml中对TiXmlNode进行了分类,是用一个枚举进行描述的. // enum No ...

  2. JavaScript 节点操作Dom属性和方法(转)

    JavaScript 节点操作Dom属性和方法   一些常用的dom属性和方法,列出来作为手册用. 属性:   1.Attributes 存储节点的属性列表(只读)   2.childNodes 存储 ...

  3. ORACLE 11gR2 RAC添加删除(正常及强制)节点操作步骤(删除篇)

    ORACLE 11gR2 RAC添加删除(正常及强制)节点操作步骤(删除篇) 本文主要转载 [  http://www.cnxdug.org/?p=2511 ] 有部分细节自己实验添加,再此谢谢前辈. ...

  4. 【转】JavaScript 节点操作 以及DOMDocument属性和方法

    最近发现DOMDocument对象很重要,还有XMLHTTP也很重要 注意大小写一定不能弄错. 属性: 1Attributes 存储节点的属性列表(只读) 2childNodes 存储节点的子节点列表 ...

  5. JavaScript 之 节点操作

    一.文档树结构 DOM 可以将任何 HTML 或 XML 描绘成一个由多层节点构成的结构. 节点分为不同的类型,每种类型分别表示文档中不同的信息.每个节点都拥有各自的特点.数据和方法,另外也与其他节点 ...

  6. JavaScript之DOM操作,事件操作,节点操作

    1,DOM操作 1.1  概念 所谓DOM,全称Document Object Model 文档对象模型,DOM是W3C(World Wide Web Consortuum )标准,同时也定义了访问诸 ...

  7. HTML节点操作

    HTML节点操作 HTML节点的基本操作,添加节点,替换节点,删除节点,绑定事件,访问子节点,访问父节点,访问兄弟节点. 文档对象模型Document Object Model,简称DOM,是W3C组 ...

  8. 深入理解DOM节点操作

    × 目录 [1]创建节点 [2]插入节点 [3]移除节点[4]替换节点[5]复制节点 前面的话 一般地,提起操作会想到“增删改查”这四个字,而DOM节点操作也类似地对应于此,接下来将详细介绍DOM的节 ...

  9. 深入学习jQuery节点操作

    × 目录 [1]创建节点 [2]插入节点 [3]删除节点[4]复制节点[5]替换节点[6]包裹节点 前面的话 DOM节点操作包括创建节点.插入节点.移除节点.替换节点和复制节点.jQuery也有类似的 ...

随机推荐

  1. 一次典型的TFS故障处理:域控失联

    问题描述 突然收到客户报告,开发人员登录TFS系统时,出现登录异常现象.即使输入了正确的账户和密码,TFS系统任然提示重新登录的页面,导致用户无法打开TFS系统. 即使登录成功,在修改代码或者修改工作 ...

  2. ASP .Net C# ---CSV导入导出

    CSV和Excel大致相同  复制下来 数据传到方法里面就可以了 /// <summary> /// DataTable数据写入CSV文件 /// </summary> /// ...

  3. 新品成熟EMR源码电子病历系统软件NET网络版CS可用带数据库全文档

    查看电子病历系统演示 医院医疗信息管理系统,EMR电子病历系统,功能模块如下所示: 1.住院医生站 2.住院护士站 3.病案浏览工作站 4.质量控制工作站 5.系统维护工作站  本店出售系统全套源码, ...

  4. C# Winform模仿百度日历

    想写博客不知道从何处开始,就从回忆开始吧. 第一个就从自定义日历控件开始 产生背景: 大概2015年时候有个项目要用到日历,用默认日历展示给用户看,用户毫不客气都说界面太丑,最好做成像百度日历那样方便 ...

  5. Entity Framework Core 生成跟踪列-阴影属性

    摘自:https://www.cnblogs.com/tdfblog/p/entity-framework-core-generate-tracking-columns.html Ef Core 官方 ...

  6. CentOS 7 - 创建新用户

    当进行服务器操作时,我们尽量不要使用root用户进行操作,特别是当我们使用生产环境时. 本文我们将介绍CentOS 7下用户的创建. 创建新用户 adduser 用户名 更改用户密码 passwd 用 ...

  7. BZOJ2178: 圆的面积并(格林公式)

    题面 传送门 题解 好神仙-- 先给几个定义 平面单连通区域:设\(D\)是平面内一区域,若属于\(D\)内任一简单闭曲线的内部都属于\(D\),则称\(D\)为单连通区域.通俗地说,单连通区域是没有 ...

  8. Eclipse 导入本地 Git 项目

    File -->  Open Projects From File System 选择项目路径 Finish

  9. pinnet 计算云分区

    fdisk /dev/xvdemne mnlEnterEnter 9G-98G-98G-478M-28G-28G-28G mw #设置文件格式mkfs -t ext4 /dev/xvde5mkfs - ...

  10. webApp开发中的总结

    meta标签:  H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 <meta name="viewport" content="width=device-wid ...