XML(可扩展标记语言)
在C#中我们常用来当做一个小型的数据库来使用,我们可以将信息保存在XML文档中,或者从XML文档中获取数据。这样就必须使用到XML文档的数据读取。
XML文档的读取有两种方式:
一、利用XMLReader逐条读取,通过判断XML的NodeType属性来获取到XML文档中信息。
示例:设置可以读取xml的dtd内容
XmlReaderSettings xs=new XmlReaderSettings();
xs.DtdProcessing=DtdProcessing.Parse;
//用xmlreader对象读取
XmlReader xml = XmlReader.Create("../../Student.xml",xs);
// bool b= xml.Read();//只进流的方式读取节点
//string n= xml.Name;//读取的节点的名称
//MessageBox.Show(n);
while (xml.Read())
{
string msg = "";
switch (xml.NodeType)
{
case XmlNodeType.Attribute:
msg = "属性:" + xml.Name;
break;
case XmlNodeType.CDATA:
msg = "CDATA节点:" + xml.Value;
break;
case XmlNodeType.Comment:
msg = "注释:" + xml.Value;
break;
case XmlNodeType.DocumentType:
msg = "dtd";
break;
case XmlNodeType.Element:
msg = "开始标记:" + xml.Name;
break;
case XmlNodeType.EndElement:
msg = "结束标记:" + xml.Name;
break;
case XmlNodeType.Text:
msg = "内容:" + xml.Value;
break;
case XmlNodeType.Whitespace:
msg = "空白节点";
break;
case XmlNodeType.XmlDeclaration:
msg = "xml文件声明:"+xml.Name;
break;
default:
break;
}
MessageBox.Show(msg);
}
优点,每次只读取一条内容,比较节省系统的内容,适合大文件的读取。
二、利用XMLDocument对象一次性将整个XML文档加载到内存中,形成一个有层次关系的DOM树
示例:
XmlDocument doc = new XmlDocument();
doc.Load("../../Part1.xml");
XmlElement xe = doc.DocumentElement;
foreach (XmlNode item in xe.ChildNodes)
{
string province = item.Attributes["id"].Value.ToString();
comboBox1.Items.Add(province);
}
1)XML文档新增节点
XmlDocument xml=new XmlDocument();
xml.load("../../Student.xml");
//创建一个节点
XmlNode stnode=xml.CreateElement("节点一");//这里是需要创建的节点的名字
//stnode.InnerText="";//这里可以设置节点中的文本
XmlAttribute sta=xml.CreateAtrribute("id");//这里 创建了一个名为id的属性
stnode.Attributes.Append(sta);//将这个属性添加到stnode节点中
xml.DocumentElement.AppendChild(stuNode)//最后将创建的节点添加到XML文档的根节点中
xml.Save("../../Student.xml");//最后将修改后的XML保存到磁盘中
2)XML文档修改节点
和新增一样,首先我们需要将整个XML文档加载到内存中。
然后我们需要获取到需要修改的节点
XmlNode=xml.selectSingleNode("//student[@stuNo='"+stuNo+"']");
//xpath 路径的写法有两种 //从跟节点开始往后写路径的写法叫绝对路径写法:/students/student/sex //以"//"开头写路径的写法为相对路径的写法://student/sex //如果节点中右属性就用[ ]括起来
找到这个节点之后,重新给节点的InnerTextX属性赋值,就可以实现修改操作。
3)XML文档删除操作
首先,我们同样需要加载XML文档,然后我们需要获取到那个要删除的节点。同样的调用selectSingleNode方法,
最后我们使用xml.removeChild();就可以将节点移除,每次做完操作之后都别忘了调用xml.Save();将操作后的XML文档保存到磁盘中。
XMLDocument属性:
DocumentElement 获取文档的根 XmlElement。
ChildNodes 获取节点的所有子节点。
HasChildNodes 获取一个值,该值指示节点是否有任何子节点。
FirstChild 获取节点的第一个子级。
LastChild 获取节点的最后一个子级
NextSibling 获取紧接在该节点之后的节点。
PreviousSibling 获取紧接在该节点之前的节点。
ParentNode 获取该节点的父级节点。
InnerText 获取或设置节点及其所有子节点的串联值。
InnerXml 获取或设置表示当前节点子级的标记。
Attributes 获取一个 XmlAttributeCollection,它包含该节点的属性。
Value 获取或设置节点的值
Name 获取节点的限定名。
LocalName 获取节点的本地名称。
Prefix 获取或设置该节点的命名空间前缀。
AppendChild 将指定的节点添加到该节点的子节点列表的末尾
CreateAttribute 创建具有指定名称的 XmlAttribute
CreateElement 创建 XmlElement
CreateNode 创建 XmlNode
CreateTextNode 创建具有指定文本的 XmlText
RemoveAll 移除当前节点的所有子节点和/或属性。
RemoveChild 移除指定的子节点。
ReplaceChild 用 newChild 节点替换子节点 oldChild。
WriteTo 将 XmlDocument 节点保存到指定的 XmlWriter。
Save 将 XML 文档保存到指定的位置。
审核编辑 黄宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
XML
+关注
关注
0文章
190浏览量
34587 -
鸿蒙OS
+关注
关注
0文章
194浏览量
5551
发布评论请先 登录
相关推荐
热点推荐
xml文件如何打开?怎样打开XML文件?
XML是ExtensibleMarkupLanguage的简写,一种扩展性标识语言。现在教你打开xml文件的方法和软件。呵,其实最简单的就是用EXCEL表格打开了。。也可以用Netsc
发表于 07-04 17:56
xml教程pdf (XML终极教程下载)
xml教程pdf (XML终极教程下载)
Welcome to the XML Bible. After reading this book I hope you’ll agree with me
发表于 10-07 14:15
•0次下载
An Eagle’s Eye View of XML
This first chapter introduces you to XML. It explains ingeneral what XML is and how it is used.
发表于 10-07 14:22
•18次下载
An Introduction to XML Applica
An Introduction to XML Applications
In this chapter we’ll be looking at some examples
发表于 10-07 14:23
•13次下载
XML流上的关键字查询算法
针对当前XML 流过滤研究中存在的问题,使用关键字查询方法作为解决方案。提出最右包含边界的概念,结合一个虚拟栈实现用于在XML 数据流上进行关键字查询的XVirtualStack 算法
发表于 03-21 15:07
•14次下载
报文解析工具中的XML数据字典
针对报文解析过程中存在的数据存储无序、查询和调用不便等问题,提出应用XML 数据字典进行数据存储的方案。根据给定的数据表,设计XML 形式的数据字典。实现XML 字典数据的解
发表于 03-28 09:38
•36次下载
XML数据分页索引技术研究
对海量XML文档的索引查询技术进行研究,提出一种XML数据分页索引查询实现方法。该方法把页面元素标记数量作为数据分页依据,建立XML数据的分
发表于 03-31 10:07
•10次下载
基于XBW变换的XML数据压缩查询方法
XML数据格式虽然具有易于创建和解析的特点,但数据格式过于冗长,难以实现具体的查询。该文引入XBW变换,将XML数据压缩成3个线性序列,使XML数据的
发表于 04-14 09:22
•10次下载
XML数据查询代价估计算法
XML数据查询代价估计问题是一种典型的多元素查询条件代价估计问题。XML数据中的值信息分布不仅与其他值信息分布相关,还与XML数据中的结构信
发表于 01-27 11:35
•6次下载
XML数据流基于组着色的XPath查询模型
提出了一种新的XML数据流XPath查询模型GBRender,该模型通过组着色序列来直接处理元素,具有较高的处理效率与较强的适应性。
发表于 08-02 14:16
•0次下载
基于节点集的XML查询
随着XML应用的日益广泛,XML数据管理和查询问题也引起了人们的普遍关注,并成为研究的热点。尽管XML有其各种不同的表示和用途,但其本质仍然是基于层次的数据结构,并可映射为相应的
发表于 12-20 09:35
•0次下载
XML基础——XML必须知道的入门知识
XML(Extensible Markup Language) 即可扩展标记语言。XML是Internet环境中跨平台的、依赖于内容的技术,是当前处理结构化文档信息的有力工具
【JAVA UI】【HarmonyOS】【Demo】 鸿蒙如何进行 xml 解析
【鸿蒙】鸿蒙如何进行数据解析 【问题描述】有时候我们从服务器获取是 xml 格式数据,我们需要将 xml 转化成 model 对象,该如何使用呢?下面举个例子说明一下,将分以下几步进行
鸿蒙OS开发-(用xml写查询语句+xml使用)
评论