SelectNodes中的XPath

//从当前节点的儿子节点中选择名称为 item 的节点。
SelectNodes("item")//从根节点的儿子节点中选择名称为 item 的节点。
SelectNodes("/item")// 从任意位置的节点上选择名称为 item 的节点。要重点突出这个任意位置,它不受当前节点的影响,也就是说假如当前节点是在第 100 层(有点夸张),也可以选择第一层的名称为 item 的节点。
SelectNodes("//item")// 在 SelectNodes("//item") 的基础上,增加了一个限制,就是要求拥有 name 属性。
SelectNodes("//item[@name]")// 在 SelectNodes("//item[@name]") 的基础上,增加了一个限制,就是要求 name 属性值为 111。注意语法中有引号;如果没有引号,则表示是数字类型,对于数字类型可以使用大于号、小于号等,比如:SelectNodes("//item[@v>333]")。
SelectNodes("//item[@name='111']")//*******进阶版**************
// 模糊匹配
// 使用contains, 表示label属性内容包含caseSuite变量内容
string xpathStr = string.Format(@"//TestSuite[contains(@label,'{0}')]", caseSuite);
XmlNodeList removeSuiteInfoList = suiteListNode.SelectNodes(xpathStr);// 可以逻辑运算
/Root//Person[contains(Blog,'cn') and contains(@ID,'01')]

SelectNodes

如果xml里没有“xxx”节点,nodeList.Count会返回0,而不是null或error

            XmlDocument xmlDocument = new XmlDocument();xmlDocument.Load(@"test.xml");XmlNodeList nodeList = xmlDocument.SelectNodes(@"//UnitTest/XXX");Console.WriteLine(nodeList.Count.ToString());Console.ReadKey();

xml文件创建与保存

XmlDocument planDoc = new XmlDocument();planDoc.AppendChild(planDoc.CreateXmlDeclaration("1.0", "UTF-8", null));//创建根目录
XmlElement planRoot = planDoc.CreateElement(PlanSuiteList);//保存至PlanFullName
planDoc.Save(PlanFullName);

创建节点以及添加属性

//创建节点
XmlElement memberTestSuite = planDoc.CreateElement(TestSuite);
//设置属性
memberTestSuite.SetAttribute(EachFlowLabel, label);//创建子节点
XmlElement childName = planDoc.CreateElement(EachFlowName);
childName.InnerText = suiteName;//子节点添加memberTestSuite.AppendChild(childName);//添加到根节点
planRoot.AppendChild(memberTestSuite);//根节点添加到xml文件planDoc.AppendChild(planRoot);// xmlnode 添加节点
XmlNode projectInfoNode = projectInfoDocument.SelectSingleNode(@"//ProjectInfo");
XmlElement newNodeElement = projectInfoDocument.CreateElement(nodeName);
newNodeElement.InnerText= testerNode.InnerText;projectInfoNode.AppendChild(newNodeElement);

删除节点

//删除子节点
XmlNode suiteListNode = planDocument.SelectSingleNode(@"//PlanSuiteList");suiteListNode.RemoveChild(suiteNode);

参考:https://blog.csdn.net/nnn_net/article/details/69584358

C# XML添加删除/SelectNodes/xpath相关推荐

  1. 加载XML 添加删除节点

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.X ...

  2. c# xml添加 删除 修改数据

    //首先添加一个xml文件,一定要先手动添加一个根结点,否则程序找不到根结点 //<user></user> using System; using System.Data; ...

  3. Dom4j 解析Xml文档及 XPath查询 学习笔记

    2019独角兽企业重金招聘Python工程师标准>>> 本文查阅方法:     1.查阅目录 -- 查阅本文目录,确定想要查阅的目录标题     2.快捷"查找" ...

  4. 使用XML、XSLT和XPath创建可排序、分页、重用的数据显示页

    在Web开发中,我们经常会遇到分页显示和排序数据记录集的情况,这在服务器端使用服务器端的代码和数据库技术是件很轻松的事情,比如:ASP.PHP.JSP等.然而,如果要在客户端显示多条记录并且排序是一件 ...

  5. (转)使用XML、XSLT和XPath创建可排序、分页、重用的数据显示页

    在Web开发中,我们经常会遇到分页显示和排序数据记录集的情况,这在服务器端使用服务器端的代码和数据库技术是件很轻松的事情,比如:ASP.PHP.JSP等.然而,如果要在客户端显示多条记录并且排序是一件 ...

  6. 使用XML、XSLT和XPath创建可排序、分页、重用的数据显示页面[转载]

    在Web开发中,我们经常会遇到分页显示和排序数据记录集的情况,这在服务器端使用服务器端的代码和数据库技术是件很轻松的事情,比如:ASP.PHP.JSP等.然而,如果要在客户端显示多条记录并且排序是一件 ...

  7. 使用XML、XSLT和XPath创建可排序、分页、重用的数据显示页面

    使用XML.XSLT和XPath创建可排序.分页.重用的数据显示页面 在Web开发中,我们经常会遇到分页显示和排序数据记录集的情况,这在服务器端使用服务器端的代码和数据库技术是件很轻松的事情,比如:A ...

  8. Java dom4j如何获取,添加,删除,查找,设置Element属性呢?

    转自: Java dom4j如何获取,添加,删除,查找,设置Element属性呢? 下文讲述dom4j操作Element属性的方法分享,如下所示: 取得某节点下的某属性 Element root=do ...

  9. Java如何使用dom4j获取,添加,删除,查找,设置Element节点呢?

    转自: Java如何使用dom4j获取,添加,删除,查找,设置Element节点呢? 下文笔者讲述DOM4J操作Element节点的示例分享,如下所示 获取文档的根节点 Element rootElm ...

最新文章

  1. 《预训练周刊》第17期:深度迁移学习与数据增强改善2型糖尿病预测、钢琴补谱应用...
  2. 【深度学习篇】--Windows 64下tensorflow-gpu安装到应用
  3. Linux 终端下颜色的输出
  4. Shell脚本攻略01-简介/终端打印
  5. 使用Log Explorer恢复数据
  6. Docker将镜像上传至私有仓库
  7. 网摘--2014年5月12日
  8. java 数组赋值_自学JAVA每日记录(10)-欢迎指点欢迎共勉
  9. C语言小知识---奇葩的小数
  10. Linux简单基本命令
  11. ios libfdk-aac encode
  12. 突然发现到今天已经很难找到对底层理解这么透彻的人
  13. 20200615每日一句
  14. UFS Write Booster Feature Overview
  15. 米家有品这么多好东西哪些值得我们关注
  16. python查看某个函数方法具体有哪些参数怎么做
  17. Hibernate5
  18. 内部基因决定拼购品质,苏宁拼购或将成为行业发展新标杆
  19. CS全球排名44,复旦计科实力如何?
  20. window11安装JDK1.8【jdk-8u121】

热门文章

  1. 第十一周项目3-程序的多文件组织
  2. Xamarin效果第十六篇之GIS添加Mark
  3. 如何使用cURL获得请求和响应时间?
  4. Goreplay来做流量回放
  5. 又一次Task.Wait引起的教训
  6. .NET Worker Service 如何优雅退出
  7. 使用 Tye 辅助开发 k8s 应用竟如此简单(四)
  8. 在 C# 中生成代码的四种方式——包括.NET 5中的Source Generators
  9. 芯片项目谁支持谁负责 重大损失将予以通报
  10. 让我的 .NET Core 博客系统支持 Docker