C#详解:新手指南-XML文件操作与数据读取
"本篇教程详细介绍了如何在C#中进行XML文件操作,特别是针对初学者。首先,我们学习如何使用C#的内置XML处理库来读取和解析XML数据。通过`XmlObj`类中的`GetXml`方法,我们可以将XML文件加载到`DataSet`对象中,这对于处理结构化的XML数据非常有用,如XML文档中的表格数据。此方法接受一个XML路径参数,返回一个包含XML内容的DataSet实例。 `ReadXmlReturnNode`方法则是用于获取XML文件中指定节点的文本内容。它接受XML路径和节点名称作为参数,通过`XmlDocument`类加载XML文档,并使用`GetElementsByTagName`方法找到指定的节点,最后返回该节点的InnerText属性值。 对于更复杂的XML数据,可能需要遍历整个XML树结构,`XmlNodeList`可以帮助我们获取所有匹配指定节点名的元素。然而,本部分未提供具体实现,但可以想象这个方法会涉及到遍历节点列表,例如: ```csharp public static string ReadAllNodes(string xmlPath, string XPath) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(xmlPath); XmlNodeList nodes = xmlDoc.SelectNodes(XPath); StringBuilder result = new StringBuilder(); foreach (XmlNode node in nodes) { result.Append(node.InnerText + Environment.NewLine); } return result.ToString(); } ``` 接下来,`,...`后面的部分提到的方法可能是用来写入或修改XML文件的,这通常涉及到`XmlDocument`或`XmlWriter`类的使用,例如将DataSet中的数据转换回XML并保存回文件,或者根据需要动态创建新的XML节点。这部分代码可能类似于: ```csharp ///<summary> /// 将DataSet中的数据写入XML文件 ///</summary> ///<param name="xmlPath">XML文件路径</param> ///<param name="dataSet">要写入的数据集</param> ///<param name="nodePath">新数据应插入的位置(XPath表达式)</param> public static void WriteXmlFromDataSet(string xmlPath, DataSet dataSet, string nodePath) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(xmlPath); // 创建新的XmlNode,将DataSet内容添加进去 XmlElement newNode = xmlDoc.CreateElement("NewNode"); // 遍历DataSet并将数据写入新节点 foreach (DataTable table in dataSet.Tables) { foreach (DataRow row in table.Rows) { foreach (DataColumn col in table.Columns) { newNode.SetAttribute(col.ColumnName, row[col].ToString()); } } } // 插入新节点到指定位置 xmlDoc.SelectSingleNode(nodePath).AppendChild(newNode); // 保存到文件 xmlDoc.Save(xmlPath); } ``` 本篇文章为C#新手提供了基础的XML文件操作方法,包括读取、获取节点内容以及处理XML数据的存储和更新。通过这些核心函数,开发者可以有效地与XML文档交互,实现数据的读写操作。"
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.IO;
using System.Collections;
using System.Xml;
namespace XmlTest
{
/// <summary>
/// XML 操作基类
/// </summary>
public class XmlObj
{
#region 读取XML到DataSet
/// <summary>
/// 功能:读取XML到DataSet中
/// <param name="XmlPath">xml路径</param>
/// <returns>DataSet</returns>
public static DataSet GetXml(string XmlPath)
{
DataSet ds = new DataSet();
ds.ReadXml(@XmlPath);
return ds;
}
#endregion
#region 读取xml文档并返回一个节点
/// <summary>
/// <param name="XmlPath">xml路径</param>
/// <param name="NodeName">节点名称</param>
/// <returns></returns>
public static string ReadXmlReturnNode(string XmlPath, string Node)
{
XmlDocument docXml = new XmlDocument();
docXml.Load(@XmlPath);
XmlNodeList xn = docXml.GetElementsByTagName(Node);
return xn.Item(0).InnerText.ToString();
}
#endregion
#region 查找数据,返回一个DataSet
/// <summary>
/// 查找数据,返回当前节点的所有下级节点,填充到一个DataSet中
/// </summary>
/// <param name="xmlPath">xml文档路径</param>
/// <param name="XmlPathNode">节点的路径:根节点/父节点/当前节点</param>
/// <returns></returns>
public static DataSet GetXmlData(string xmlPath, string XmlPathNode)
{
XmlDocument objXmlDoc = new XmlDocument();
objXmlDoc.Load(xmlPath);
DataSet ds = new DataSet();
StringReader read = new StringReader(objXmlDoc.SelectSingleNode(XmlPathNode).OuterXml);
ds.ReadXml(read);
return ds;
}
剩余13页未读,继续阅读
- 粉丝: 10
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Unity UGUI性能优化实战:UGUI_BatchDemo示例
- Java实现小游戏飞翔的小鸟教程分享
- Ant Design 4.16.8:企业级React组件库的最新更新
- Windows下MongoDB的安装教程与步骤
- 婚庆公司响应式网站模板源码下载
- 高端旅行推荐:官网模板及移动响应式网页设计
- Java基础教程:类与接口的实现与应用
- 高级版照片排版软件功能介绍与操作指南
- 精品黑色插画设计师作品展示网页模板
- 蓝色互联网科技企业Bootstrap网站模板下载
- MQTTFX 1.7.1版:Windows平台最强Mqtt客户端体验
- 黑色摄影主题响应式网站模板设计案例
- 扁平化风格商业旅游网站模板设计
- 绿色留学H5模板:科研教育机构官网解决方案
- Linux环境下EMQX安装全流程指导
- 可爱卡通儿童APP官网模板_复古绿色动画设计