概要讲一下 C# 对 XML 的使用

事实上,一个 XML 文件在加载入内存中后会是以 Dom 树的形式存在,

所以对一个 XML 文件的操作也就归根为一个对 Dom 的操作了,

首先看一下 XML 文件的大体结构

也即是一个学校里面的学生,拥有学号,姓名,性别,年龄

<?xml version="1.0" encoding="utf-8"?>

<School>

<Student number="001">

<Name>XiaoZhen</Name>

<Sex>男</Sex>

<Age>20</Age>

</Student>

<Student number="002">

<Name>BaoBei</Name>

<Sex>男</Sex>

<Age>20</Age>

</Student>

<Student number="003">

<Name>SuHa</Name>

<Sex>女</Sex>

<Age>21</Age>

</Student>

<Student number="004">

<Name>BaoBeiMe</Name>

<Sex>女</Sex>

<Age>20</Age>

</Student>

</School>

然后便是对其的基本操作了

public class getAllXmlData

{

private string xmlPath;

public getAllXmlData(string path)

{

xmlPath = path;

}

//即是获取指定路径的 XML文件中的所有数据

//并且是以 DataView 对象返回数据集

public DataView GetXmlDataView()

{

DataTable myTable = new DataTable();

DataRow myRow;

myTable.Columns.Add("学号", Type.GetType("System.String"));

myTable.Columns.Add("姓名", Type.GetType("System.String"));

myTable.Columns.Add("性别", Type.GetType("System.String"));

myTable.Columns.Add("年龄", Type.GetType("System.String"));

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load(xmlPath);

XmlElement root = xmlDoc.DocumentElement;

foreach (XmlNode node in root.ChildNodes)

{

myRow = myTable.NewRow();

myRow["学号"] = node.Attributes["number"].Value;

myRow["姓名"] = node.SelectSingleNode("./Name").InnerText;

myRow["性别"] = node.SelectSingleNode("./Sex").InnerText;

myRow["年龄"] = node.SelectSingleNode("./Age").InnerText;

myTable.Rows.Add(myRow);

}

return myTable.DefaultView;

}

}

又如在 XML 文件中新增一条新的数据

public void InsertXmlData(string xmlPath)

{

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load(xmlPath);

XmlElement root = xmlDoc.DocumentElement;

XmlElement student = xmlDoc.CreateElement("Student");

student.SetAttribute("number", strNumber);

XmlElement name = xmlDoc.CreateElement("Name");

name.InnerText = strName;

XmlElement sex = xmlDoc.CreateElement("Sex");

sex.InnerText = strSex;

XmlElement age = xmlDoc.CreateElement("Age");

age.InnerText = strAge;

student.AppendChild(name);

student.AppendChild(sex);

student.AppendChild(age);

root.AppendChild(student);

xmlDoc.Save(xmlPath);

}

由上面代码可以看出

对 XML 的一个操作完全是以 Dom 的形式来实现的

所以对 XML 的掌握程度关键还在于 Dom

转载于:https://www.cnblogs.com/BoyXiao/archive/2009/12/20/1628030.html

C # 操作 XML相关推荐

  1. 使用Dom4j操作XML数据

    --------------siwuxie095 dom4j 是一个非常优秀的 Java XML 的 API, 用来读写 XML 文件 和操作 XML 数据 特点:性能优异.功能强大.极端易用 dom ...

  2. 在C#.net中如何操作XML

    在C#.net中如何操作XML 需要添加的命名空间: using System.Xml; 定义几个公共对象: XmlDocument xmldoc ; XmlNode xmlnode ; XmlEle ...

  3. ActionScript 3操作XML 详解

    AS3引入了E4X ,它是根据ECMAScript标准处理XML 数据的全新机制.这使得程序员在程序中无缝地操作XML.在AS3中可以使用XML字面值将XML数据直接写入代码,该字面值将被自动解析. ...

  4. 我错了,有个叫 SelectSingleNode 的可以操作 xml

    我错了,有个叫 SelectSingleNode 的可以操作 xml http://blog.csdn.net/wf520pb/article/details/2644549 ------------ ...

  5. android xml文件操作类,android操作xml

    android操作xml封装后的类,包括创建xml和读xml. public class XmlParserUtil { //创建xml文件 public static void createXmlF ...

  6. c#操作xml实例 2009-03-13 20:00

    在C#.net中如何操作XML 需要添加的命名空间: using System.Xml; 定义几个公共对象: XmlDocument xmldoc ; XmlNode xmlnode ; XmlEle ...

  7. C#操作XML总结1

    C#操作XML总结1 网上很多C#操作XML的文章,但是都是东拼西凑,把简单的问题复杂化,不参考罢了.如若照搬硬套,不但达不到目标,反而浪费时间.原本以前做过操作XML的程序,但是忘了,所以今天下午就 ...

  8. VC++中操作XML(MFC、SDK)

    VC++中操作XML(MFC.SDK) XML在Win32程序方面应该没有在Web方面应用得多,很多Win32程序也只是用XML来存存配置信息而已,而且没有足够的好处的话还不如用ini.VC++里操作 ...

  9. Repeater、GridView等 操作XML

    Repeater.GridView等 操作XML文件 在项目中需要对XML文件进行管理,我用了Repeater 的方式来实现了实时的更新 希望对阅读这篇随笔的您有所帮助,我用的Repeater,您也可 ...

  10. ASP.net Xml: ASP.net操作Xml

    专题图编号:ylbtechASPnetXml100010010 XML课件PPT[在线PPT课件倡导者-ylb]  http://wenku.baidu.com/view/bfac3ebe1a37f1 ...

最新文章

  1. 汽车高级驾驶辅助系统ADAS激光雷达创新者Cepton与Growth Capital达成企业合并协议
  2. 35 个 Java 代码性能优化总结
  3. python web为什么不火-pythonweb为什么不火-问答-阿里云开发者社区-阿里云
  4. LeetCode-1423:可获得的最大点数
  5. python爬虫框架scrapy操作步骤
  6. ARTetris-AR版俄罗斯方块的源码解析
  7. 大班音乐机器人反思_幼儿园大班音乐律动教案《伦敦桥》含反思
  8. Office2021中文零售版的离线安装包下载地址合集
  9. Sparse Principal Component Analysis
  10. php try catch 作用域,浅谈PHP中try{}catch{}的使用方法
  11. idea导入eclipse快捷键
  12. 学GIS的你,是时候自己做张中国地图了(附行政区划数据下载)
  13. html5 图片命名,html5 css命名规范
  14. 软件测试多长时间可以学习,软件测试学习多长时间啊?好学吗?
  15. Android中补间动画相关知识
  16. Codeforces 802 补题
  17. c,c++代码格式规范
  18. 电脑上与android手机文件互传
  19. 如何在微信公众号上传PDF文件?
  20. django 连接数据库 sqlite

热门文章

  1. android安全string,[求助]Android Xposed 有没有可以将String转换成Method类型的方法
  2. 二元函数泰勒公式例题_考研.泰勒公式的理解与运用.一次全懂
  3. 横断面数据提取工具_SDTP_CAD断面数据处理教程
  4. 雪花算法id长度_【Java】分布式自增ID算法雪花算法 (snowflake,Java版)
  5. 如何避免_小红书如何避免降权!
  6. 推荐几个值得关注的爬虫库
  7. pytorch学习笔记(二十):Padding-And-Strides
  8. Math.random()取随机数一直为0
  9. 使用LaTeX绘制列表(有的地方称作Num Item)
  10. [转]MIDI常识20条