现在各大数据库公司都在开发Xml数据库(非关系型),而C#将对Xml的操作集成到了语言中,使得程序操作Xml 十分简便,现在让你快速上手Xml操作。
首先我们要知道Xml是树形结构,所以节点的概念十分重要。我们先要知道这些方法和类,具体的应用见下面的代码。
XmlDocument Xml文档类
重要方法有:
Load(xmlPath); //载入Xml文档,xmlPath为路径
Save(xmlPath); //保存Xml文档
重要属性
DocumentElement //根节点
XmlElement 节点类
重要方法:
PrependChild(XmlElement childNode); //将childNode 添加到当前节点的第一个子节点
AppendChild(XmlElement childNode); //将childNode 添加到当前节点的最后一个子节点
SetAttribute(string "属性名",string "属性值");//设置当前节点属性
SelectNodes(string 条件); //通过条件得到子节点,若有多个,返回第一个具体见代码
SelectSingleNode(); //意义同上,返回所有节点 xmlNodeList类
重要属性:
InnerText //节点中的内容
ChildNodes //所有子节点 xmlNodeList类
ParentNode //父节点
先往一个Xml文档写入,再读取其中的内容
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace XmlDeal
{
//操作Xml文档
class XmlDeal
{
private XmlDocument doc;
private string xmlPath = "C:\\Users\\Administrator\\Desktop\\test.xml";
public XmlDeal() {
doc = new XmlDocument();
//加载 Xml(在这之前,你得确保xml中有一个根节点,否则会报错),还可以用流来加载,这里就不演示了
doc.Load(xmlPath);
}
public void xmlWrite() {
//移除根节点下的所有节点
doc.DocumentElement.RemoveAll();
//注意如果按下面的写法写的话,会有一些节点没有被删除,以为根节点的子节点的count在变化,读者好好体会吧
//foreach (XmlElement rootNode in doc.DocumentElement.ChildNodes) {
// rootNode.ParentNode.RemoveChild(rootNode);
//}
XmlElement node = doc.CreateElement("小说");
//设置属性
node.SetAttribute("序号","1");
//新建子节点
XmlElement childNode1 = doc.CreateElement("书名");
node.PrependChild(childNode1);
childNode1.InnerText = "哈利 波特";
//插入到父节点的末尾
node.AppendChild(childNode1);
XmlElement childNode2 = doc.CreateElement("作者");
node.PrependChild(childNode2);
childNode2.InnerText = "杰克 罗琳";
node.AppendChild(childNode2);
XmlElement node2 = doc.CreateElement("小说");
node2.SetAttribute("序号", "2");
//新建子节点
XmlElement childNode21 = doc.CreateElement("书名");
node.PrependChild(childNode21);
childNode21.InnerText = "致青春";
//插入到父节点的末尾
node2.AppendChild(childNode21);
XmlElement childNode22 = doc.CreateElement("作者");
node.PrependChild(childNode22);
childNode22.InnerText = "辛夷坞";
node2.AppendChild(childNode22);
//获取文档的根节点,并将 node 添加到根节点的子节点的开头,注意append 不会覆盖以前的数据
doc.DocumentElement.AppendChild(node);
doc.DocumentElement.AppendChild(node2);
doc.Save(xmlPath);
}
//查找读入xml中的信息
public void xmlRead() {
//得到父节点
XmlElement root = doc.DocumentElement;
//得到文本中内容的方法一,通过不断获得子节点获得其中的内容
XmlNodeList nodeList = root.ChildNodes;
foreach(XmlElement node in nodeList){
foreach(XmlElement child in node.ChildNodes){
Console.WriteLine(child.InnerText);
}
}
Console.WriteLine();
//得到文本中的内容的方法二,通过表达式,读者可以比较下区别
XmlNode node1 = doc.SelectSingleNode("/Book/小说/书名");
Console.WriteLine(node1.InnerText);
//[]中的是条件格式为 节点[@属性名='属性值']
XmlNode node2 = doc.SelectSingleNode("/Book/小说[@序号= '2']/书名");
Console.WriteLine(node2.InnerText);
//通过节点名获得属性值
Console.WriteLine(node2.Attributes["序号"].Value);
}
public static void Main(string[] args) {
XmlDeal xmlDeal = new XmlDeal();
xmlDeal.xmlWrite();
xmlDeal.xmlRead();
while (true) { }
}
}
}
写入的Xml文件内容如下:
<Book>
<小说 序号="1">
<书名>哈利 波特</书名>
<作者>杰克 罗琳</作者>
</小说>
<小说 序号="2">
<书名>致青春</书名>
<作者>辛夷坞</作者>
</小说>
</Book>
输出如下:
哈利 波特
杰克 罗琳
致青春
辛夷坞
哈利 波特
致青春
2
若文章有知识性错误,欢迎指正!
分享到:
相关推荐
通过动手实践,你可以快速上手C#操作XML,为后续的开发工作打下坚实基础。 总之,C#与XML的结合使得数据处理变得简单高效,无论是在Web应用程序还是桌面应用中,XML都是数据交换和存储的重要选择。通过学习和熟练...
本资源主要聚焦于使用C#语言来操作XML文档的创建过程,这对于开发者来说是一项基础但重要的技能。下面我们将深入探讨C#如何创建XML文档,以及它在实际应用中的价值。 首先,创建XML文档的核心在于使用C#的System....
在C#编程中,XML(eXtensible Markup Language)是...通过理解这些基本操作,开发者能够轻松地处理XML文件,无论是读取现有数据还是构建新的XML文档。对于初学者来说,只需花费几分钟时间研究这些示例,就能快速上手。
本示例源码主要展示了如何在C#中对XML进行基础操作,包括读取、写入、修改和解析XML文档。 1. XML的基本概念: - XML是一种标记语言,用于描述数据结构和内容。 - 它的核心元素是节点,包括元素(Element)、属性...
通过创建XML数据源,开发者可以利用XPath或XQuery来定位和操作XML文档中的特定节点,实现对图书数据的操作。 用户界面设计人性化,采用Windows Forms,提供直观的图形界面,使得操作员可以轻松上手。C#的控件库丰富...
6. **用户界面友好**:简洁的用户界面,使得操作直观易懂,即使是对技术不太熟悉的用户也能快速上手。 在使用这个工具时,开发者需要注意以下几点: 1. **备份原文件**:在转换前,确保对原始XML文件进行备份,以防...
其中,LINQ(Language Integrated Query)是C#中强大的数据查询工具,它允许开发者以类似SQL的方式在各种数据源上进行查询,包括内存中的数据集、数据库和XML文档。 表达式树是C#中另一种高级特性,它允许程序分析...
XMLHelper是一个C#编写的类,用于处理XML文档的各种操作,包括读取、修改、删除、新增和创建XML元素。这个类设计为一个基类,可以被继承以实现更具体的功能。以下是XMLHelper类的一些核心知识点和功能: 1. **XML...
C#是一种广泛应用于软件...此文档通过图文并茂的方式,使读者更容易理解复杂的概念,帮助他们快速上手C#编程,提升编程能力。无论你是初学者还是有一定经验的开发者,都可以从中受益匪浅,加深对C#和.NET框架的理解。
在这个"C#个人练习上手项目"中,你可以通过实践以上知识点,逐步提升自己的C#编程能力。通过分析、修改和扩展项目代码,你可以深入理解这些概念,并将其应用于实际项目中。同时,不断查阅文档、参考书籍和在线教程,...
2. **NQuery语法**:NQuery采用了类似SQL的语法,用户可以通过SELECT、FROM、WHERE等语句对XML文档中的数据进行查询。这使得熟悉SQL的开发者能够快速上手。 3. **数据模型**:NQuery将XML文档视为一个或多个表格,...
`WarstarDev.Office2k7.Demo`目录包含了示例代码,开发者可以参考这些示例快速上手,了解如何使用该库进行实际操作,如读取文档内容、修改样式、插入图片等。 `LICENSE`文件则是开源许可协议,表明了`WarstarDev....
3. `System.Xml`:处理XML文档的类库,用于读取、写入和操作XML数据。 4. `System.Windows.Forms` 和 `System.Windows.Controls`:用于Windows桌面应用开发,提供用户界面控件和事件处理。 5. `System.Data....
标题中的"C# 用于标准谷歌KML文件解析源码"表明了这是一个使用C#编程语言编写的库,...同时,附带的示例和单元测试能帮助快速上手并确保代码的正确运行。对于需要处理KML数据的项目,这个库是一个非常有价值的资源。
MSXML是微软提供的一套API,它允许程序员在各种微软平台上解析、操作和生成XML文档。SDK(Software Development Kit)是为开发者提供的工具集,包含了库文件、头文件、文档和示例代码,帮助开发者理解和使用这些API...
此外,SDK中的文档部分(例如,Microsoft XML SDK 2.5.CHM文件)会详细介绍如何使用提供的API,包括函数、类和接口的详细说明,以及示例代码,帮助开发者快速上手。而“中国IT认证实验室学习下载频道.txt”可能是一...
XPath是一种在XML文档中查找信息的语言,也可应用于HTML。例如,`//title` 查找所有`<title>`元素,`//a/@href` 获取所有`<a>`标签的`href`属性。而LINQ to XML提供了更面向对象的查询方式,对于熟悉LINQ的开发者来...
8. **示例代码**:通过实例代码演示常见功能的实现,帮助开发者快速上手。 9. **错误处理与调试**:指导如何解决开发过程中遇到的问题,以及有效的调试方法。 10. **社区与资源**:介绍WorldWind开发者社区,提供...
LINQ是C#的一个强大特性,提供了统一的查询接口,用于处理各种数据源,如数据库、XML文档和集合。使用`from`、`where`、`select`等关键字可以方便地进行数据过滤、投影和连接。 九、异步编程 C#引入了`async`和`...