云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > C#中读取xml文件指定节点

C#中读取xml文件指定节点

  • 62 次阅读
  • 3 次下载
  • 2026/4/30 3:31:32

C#中读取xml文件指定节点

假设xml文件内容是

1

start 1 1 1

2

pass 2 2 2

我们需要读取Activity节点下的内容,因为存在多个Activity,所以需要读取多个节点。可以使用 XmlDocument.SelectSingleNode和XmlDocument.SelectNodes方法查找节点。前一个是查找匹配的第一个节点,而后一个则会返回一个节点列表。

1.XmlDocument.SelectSingleNode方法的使用 首先创建一个读取xml文件的方法ReadXmlNode

///

/// 读取xml中的指定节点的值 ///

public void ReadXmlNode(string filename) {

XmlDocument xmlDoc = new XmlDocument(); try {

xmlDoc.Load(filename);

//读取Activity节点下的数据。SelectSingleNode匹配第一个Activity节点 XmlNode root = xmlDoc.SelectSingleNode(\当节点Workflow带有属性是,使用SelectSingleNode无法读取 if (root != null) {

string ActivityId = (root.SelectSingleNode(\

string ActivityName = (root.SelectSingleNode(\\

string ActivityLevel = root.SelectSingleNode(\

Console.WriteLine(\+ ActivityId + \+ ActivityName + \ } else {

Console.WriteLine(\ is not existed\ //Console.Read(); } }

catch (Exception e) {

//显示错误信息

Console.WriteLine(e.Message); } }

然后在主函数中调用该方法

class Program {

static void Main(string[] args) {

XMLOperation xmlOpr = new XMLOperation(); xmlOpr.ReadXmlNode(\ Console.Read(); } }

输出结果为:

ActivityId:1

ActivityName:start ActivityLevel:1

2.XmlDocument.SelectNodes方法的使用 ///

/// 读取xml中的指定节点的值,如果有多个同名节点,则全部读取

///

public void ReadXmlNodes(string filename) {

XmlDocument xmlDoc = new XmlDocument(); try {

xmlDoc.Load(filename);

XmlNodeList xnList = xmlDoc.SelectNodes(\

Console.WriteLine(\共有{0}个节点\xnList.Count);//输出xnList中节点个数。

foreach (XmlNode xn in xnList) {

//无法使用xn[\

string ActivityId = (xn.SelectSingleNode(\

string ActivityName = xn.SelectSingleNode(\ string ActivityLevel = xn.SelectSingleNode(\ // Console.WriteLine(\ActivityName + \ Console.WriteLine(\ {0}/nActivityName: {1}/nActivityLevel: {2}\ } }

catch (Exception e) {

//显示错误信息

Console.WriteLine(e.Message); } }

然后在主函数中调用该方法

class Program {

static void Main(string[] args) {

XMLOperation xmlOpr = new XMLOperation(); xmlOpr.ReadXmlNodes(\ Console.Read(); } }

输出结果为:

共有2个节点

ActivityId: 1

ActivityName: start ActivityLevel: 1 ActivityId: 2

ActivityName: pass ActivityLevel: 2

3.通过节点属性查找指定节点

参考http://www.csharp-examples.net/xml-nodes-by-attribute-value/,虽然没有用到参考文章中的方法,不过总觉得以后会用到的。

///

///通过ActivityLevel获取xmlnode,需要保证ActivityLevel在一个xml文档中是唯一的。

///

public XmlNode getXmlNode(string filename, string activitylevel) {

XmlDocument xmlDoc = new XmlDocument(); try {

xmlDoc.Load(filename);

XmlNodeList xnList = xmlDoc.SelectNodes(\当节点Workflow带有属性是,使用SelectSingleNode无法读取 foreach (XmlNode xn in xnList) {

string ActivityLevel = xn.SelectSingleNode(\ if(activitylevel==ActivityLevel) {

return xn; } } }

catch (Exception e) {

//显示错误信息

Console.WriteLine(e.Message); }

return null; }

然后在主函数中调用该方法

class Program {

static void Main(string[] args) {

XMLOperation xmlOpr = new XMLOperation();

XmlNode xn=xmlOpr.getXmlNode(\

string ActivityId = (xn.SelectSingleNode(\

string ActivityName = (xn.SelectSingleNode(\ string ActivityLevel = xn.SelectSingleNode(\

Console.WriteLine(\+ \ Console.Read(); } }

输出结果为:

ActivityId:2

ActivityName:pass ActivityLevel:2

搜索更多关于: C#中读取xml文件指定节点 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

C#中读取xml文件指定节点 假设xml文件内容是

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com