在C#编程中,XML(eXtensible Markup Language)是一种常用的数据存储和交换格式。XML文件结构清晰,易于人和机器阅读。本文将详细介绍如何使用C#进行XML的基本操作,包括读取节点数据、添加节点、读取和修改节点属性。 我们来看一个示例XML文件,它包含一个名为`PersonF`的根元素,其中包含多个`person`子元素,每个`person`元素都有`Name`、`ID`和`Age`属性: ```xml <?xml version="1.0" encoding="utf-8"?> <PersonF xmlns="" Name="(test)work hard work smart!"> <person Name="Person1"> <ID>1</ID> <Name>XiaoA</Name> <Age>59</Age> </person> <!-- ... 更多person元素 ... --> </PersonF> ``` 接下来,我们将通过C#代码来演示如何操作这个XML文件: 1. **读取单个节点的数据**: 使用`XmlDocument`类的`SelectSingleNode`方法可以获取指定路径的单个节点。例如,获取根节点`PersonF`: ```csharp XmlNode node = doc.SelectSingleNode("PersonF"); ``` 2. **读取多个节点的数据**: `SelectNodes`方法可以用来获取多个节点。例如,获取所有`person`节点: ```csharp XmlNodeList nodeList1 = doc.SelectNodes("PersonF/person"); ``` 3. **读取节点的具体值**: - **3.1 读取属性值**:通过`Attributes`属性访问节点属性,然后通过`InnerText`获取属性值。例如,找到`Name`属性为`Person2`的节点的`Name`子节点的`InnerText`: ```csharp foreach (XmlNode node2 in nodeList1) { if (node2.Attributes["Name"].InnerText == "Person2") { Console.WriteLine(node2.ChildNodes[1].InnerText); } } ``` - **3.2 通过XPath读取特定节点**:可以使用XPath表达式定位节点。例如,找到`ID`为2的节点的第二个子节点(即`Name`)的`InnerText`: ```csharp XmlNode node3 = doc.SelectSingleNode("PersonF/person[ID=2]"); string strNode3 = node3.ChildNodes[1].InnerText; ``` - **3.3 通过遍历查找特定值**:如果XPath不适用,可以遍历所有`ID`节点来找到值为2的节点: ```csharp XmlNodeList nodeList2 = doc.SelectNodes("//person//ID"); XmlNode node4 = null; foreach (XmlNode node5 in nodeList2) { if (node5.InnerText == "2") { node4 = node5; break; } } Console.WriteLine(node4.InnerText); ``` 4. **读取节点的属性**: 直接通过`Attributes`访问属性,然后获取`InnerText`。例如,获取根节点`PersonF`的`Name`属性值: ```csharp string Name = node.Attributes["Name"].InnerText; ``` 5. **修改节点的属性**: 通过`InnerText`属性修改属性值。例如,将根节点的`Name`属性修改为新的值: ```csharp node.Attributes["Name"].InnerText = "work hard work smart!"; ``` 6. **添加自定义的节点**: 可以使用`CreateElement`创建新节点,然后添加到文档中。例如,添加一个新的`person`节点: ```csharp XmlTextReader reader = new XmlTextReader(path); XmlElement root = doc.DocumentElement; // 获取根节点 XmlElement tagOuter = doc.CreateElement("person"); XmlElement tagIN = doc.CreateElement("Name"); tagIN.InnerText = "work hard work smart!"; tagOuter.AppendChild(tagIN); root.AppendChild(tagOuter); // 添加 tagOuter 到 XML 文件的最后 reader.Close(); ``` 记得保存所做的修改: ```csharp doc.Save(path); ``` 通过以上代码,你可以完成对XML文件的基本操作,包括读取、修改和添加节点。这些操作是C#中处理XML数据的基础,对于开发涉及数据存储和交换的项目非常有用。在实际应用中,你可能还需要处理更复杂的XML结构,例如嵌套节点、命名空间等,但这些基本操作提供了良好的起点。
剩余43页未读,继续阅读
- 粉丝: 0
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助