"C#读取XML节点数据方法小结" 在C#编程中,XML文件是一种常见的数据存储格式,用于传递和存储结构化数据。本文将介绍两种在C#中读取XML节点数据的方法:使用XPath和遍历式读取。 ### 第一种:使用XPath XPath(XML Path Language)是一种在XML文档中查找信息的语言。它允许通过表达式来选取节点,如元素、属性、文本等。在以下示例中,我们将XML文件的路径配置在`web.config`的`appSettings`节点下,并通过XPath选取`Organization`节点。 ```csharp // 加载XML文件 string orgCodePath = Server.MapPath(ConfigurationManager.AppSettings["orgCodePath"]); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(orgCodePath); // 使用XPath选取所有Organization节点 XmlNodeList topM = xmlDoc.SelectNodes("//Organization"); // 遍历选取的节点并存储数据 Hashtable ht = new Hashtable(); foreach (XmlElement element in topM) { string id = element.GetElementsByTagName("ID")[0].InnerText; string domainName = element.GetElementsByTagName("DomainName")[0].InnerText; ht.Add(id, domainName); } ``` 在这个例子中,我们首先加载XML文件,然后使用`SelectNodes`方法与XPath表达式`//Organization`来选取所有的`Organization`节点。接着,遍历选取的节点,提取`ID`和`DomainName`子节点的文本内容,并存储到`HashTable`中。 ### 第二种:遍历式读取XML 除了使用XPath,还可以通过遍历XML文档的节点树来读取数据。这种方法适用于不熟悉XPath或者需要更多控制的情况。 ```csharp // 打开XML文件 string filename = Server.MapPath(@"~\path\to\your\xmlfile.xml"); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(filename); // 获取根节点 XmlNode rootNode = xmlDoc.DocumentElement; // 遍历XML树 foreach (XmlNode node in rootNode.ChildNodes) { if (node.NodeType == XmlNodeType.Element && node.Name == "Organization") { string id = node.SelectSingleNode("ID").InnerText; string domainName = node.SelectSingleNode("DomainName").InnerText; // 存储数据到自定义数据结构 // ... } } ``` 在这个遍历式方法中,我们首先加载XML文件,获取根节点,然后遍历根节点的所有子节点。当遇到名为`Organization`的元素节点时,我们进一步选取`ID`和`DomainName`子节点的文本内容。 这两种方法都可以有效地读取XML文件中的数据,选择哪种取决于个人偏好、项目需求以及对XPath的熟悉程度。XPath提供了更简洁的表达方式,而遍历则更加直观且易于理解。在实际开发中,开发者可以根据具体情况灵活选用。
下载后可阅读完整内容,剩余3页未读,立即下载
- 粉丝: 4
- 资源: 916
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 十种常见电感线圈电感量计算公式详解
- 军用车辆:CAN总线的集成与优势
- CAN总线在汽车智能换档系统中的作用与实现
- CAN总线数据超载问题及解决策略
- 汽车车身系统CAN总线设计与应用
- SAP企业需求深度剖析:财务会计与供应链的关键流程与改进策略
- CAN总线在发动机电控系统中的通信设计实践
- Spring与iBATIS整合:快速开发与比较分析
- CAN总线驱动的整车管理系统硬件设计详解
- CAN总线通讯智能节点设计与实现
- DSP实现电动汽车CAN总线通讯技术
- CAN协议网关设计:自动位速率检测与互连
- Xcode免证书调试iPad程序开发指南
- 分布式数据库查询优化算法探讨
- Win7安装VC++6.0完全指南:解决兼容性与Office冲突
- MFC实现学生信息管理系统:登录与数据库操作