0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙OS开发-(用xml写查询语句+xml使用)

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-01-26 17:51 次阅读

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  获取文档的根 XmlElementChildNodes   获取节点的所有子节点。   
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   移除指定的子节点。   
ReplaceChildnewChild 节点替换子节点 oldChildWriteToXmlDocument 节点保存到指定的 XmlWriterSaveXML 文档保存到指定的位置。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • XML
    XML
    +关注

    关注

    0

    文章

    183

    浏览量

    32937
  • 鸿蒙OS
    +关注

    关注

    0

    文章

    155

    浏览量

    4282
收藏 人收藏

    评论

    相关推荐

    XML在HarmonyOS中的生成,解析与转换(下)

    一、XML 解析 对于以 XML 作为载体传递的数据,实际使用中需要对相关的节点进行解析,一般包括解析 XML 标签和标签值、解析 XML 属性和属性值、解析
    的头像 发表于 02-18 10:07 450次阅读

    xml文件如何打开?怎样打开XML文件?

    XML是ExtensibleMarkupLanguage的简写,一种扩展性标识语言。现在教你打开xml文件的方法和软件。呵,其实最简单的就是EXCEL表格打开了。。也可以Netsc
    发表于 07-04 17:56

    xml SAX教程

    。不同于其他大多数XML标准的是,SAX没有语言开发商必须遵守的标准SAX参考版本。因此,SAX的不同实现可能采用区别很大的接口。作为接口,SAX是事件驱动型XML解析的一个标准接口(standard
    发表于 10-07 13:32

    求助,请问鸿蒙如何通过graphic xml设置圆环?

    各位老板好!鸿蒙里,通过设置图形xml的方式设置自定义背景图的时候,怎样设置圆环?包括圆环的颜色、圆环的丰富等,能在提供一个例子吗?
    发表于 03-31 15:05

    xml教程下载

     XML简介 XML文档的组成 XML的语法规则 元素的语法 XML文档的有效性  DTD简介 DTD语法&n
    发表于 10-07 13:06 0次下载

    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次下载
    基于节点集的<b class='flag-5'>XML</b><b class='flag-5'>查询</b>