当前位置: 首页 > news >正文

C#__简单了解XML文档

 

        /*
        XML(可扩展标记语言):用于传输和存储数据
        XML文档:树结构;包含根元素
        XML元素:从开始标签到结束标签的部分
        
        XML语法规则:
        1、所有XML元素都必须有结束标签
        2、XML标签对字母大小写敏感
        3、XML必须正确嵌套
        4、必须有根元素
        5、XML的属性值必须加引号
        
        XML中的注释:
        <!-- This is a comment -->

        XML的命名规则:
        名称可以含字母、数字以及其他字符
        名称不能以数字或标点符号开始
        名称不能以字符“Xml、xml、XML”开始
        名称不能包含空格

        可以使用任何名称(没有保留的字词)
         */

 

 // Skill.xml

<?xml version="1.0" encoding="utf-8" ?> 
<skills><skill><id> 1 </id><name lang ="cn">大慈大悲手</name><damage>166</damage></skill><skill><id> 2 </id><name lang ="cn">佛落掌</name><damage>366</damage></skill><skill><id> 3 </id><name lang ="cn">如来</name><damage>666</damage></skill>
</skills>

// Skill.cs 

    class Skill{public int ID { get; set; }public string Name { get; set; }public string Lang { get; set; }public int Damage { get; set; }}

 

// Program.cs

       static void Main(string[] args){List<Skill> list = new List<Skill>(); //将Skill类的数据放入实例化的列表中XmlDocument xmlDoc = new XmlDocument(); //实例化一个xml文档类型//路径加载方法xmlDoc.Load(@"F:\C#编程\XML uesr\Skills.xml");//字符串加载方法//xmlDoc.LoadXml(File.ReadAllText("Skills.xml"));//获取1号子节点,注意:0是声明XmlNode root0 = xmlDoc.ChildNodes[0];XmlNode root = xmlDoc.ChildNodes[1];Console.WriteLine(root0.Name);  // xmlConsole.WriteLine(root.Name);  // skills//获取root的所有子节点XmlNodeList skillList = root.ChildNodes;foreach(XmlNode skill in skillList){// xml获取子节点和属性值方案一
/*               Skill skillObj = new Skill();XmlElement idEle = skill["id"];skillObj.ID = Int32.Parse(idEle.InnerText);XmlElement nameEle = skill["name"];skillObj.Name = nameEle.InnerText;XmlAttributeCollection attriCol = nameEle.Attributes;XmlAttribute attri = attriCol["lang"];skillObj.Lang = attri.Value;XmlElement damageEle = skill["damage"];skillObj.Damage = Int32.Parse(damageEle.InnerText);list.Add(skillObj);*/// xml获取子节点和属性值方案二Skill skillObj = new Skill();foreach (XmlNode node in skill.ChildNodes){// Console.WriteLine(node.Name + ":" + node.InnerText);/** id: 1* name: 大慈大悲手*damage:166*id: 2*name: 佛落掌*damage:366*id: 3*name: 如来*damage:666*/if (node.Name == "id"){// 将数字的字符串表示形式转换为它的等效 32 位有符号整数。skillObj.ID = Int32.Parse(node.InnerText);}else if(node.Name == "name"){// 获取或设置节点及其所有子节点的串连值。skillObj.Name = node.InnerText;// 获取 System.Xml.XmlAttributeCollection 包含此节点的属性。skillObj.Lang = node.Attributes[0].Value;}else{skillObj.Damage = Int32.Parse(node.InnerText);}}// 将skillObj的值依次存入列表list.Add(skillObj);}foreach (Skill s in list){Console.WriteLine(s.ID + "," + s.Name + "," + s.Lang + "," + s.Damage);/*1,大慈大悲手,cn,1662,佛落掌,cn,3663,如来,cn,666*/}}

// 结果

 

相关文章:

C#__简单了解XML文档

/* XML(可扩展标记语言)&#xff1a;用于传输和存储数据 XML文档&#xff1a;树结构&#xff1b;包含根元素 XML元素&#xff1a;从开始标签到结束标签的部分 XML语法规则&#xff1a; 1、所有XML元素都必须有结束标签 …...

云游数智农业世界,体验北斗时空智能

今日&#xff0c;2023年中国国际农业机械展览会在武汉正式拉开帷幕&#xff0c;众多与会者云集&#xff0c;各类农机产品纷呈&#xff0c;盛况空前。 千寻位置作为国家北斗地基增强系统的建设与运营方&#xff0c;在中国国际农业机械展览会上亮相&#xff0c;以「北斗时空智能 …...

C# 递归算法使用简介_常用整理

一、递归简介 递归算法是一种直接或者间接调用自身函数或者方法的算法。 递归算法的实质是把问题分解成规模缩小的同类问题的子问题&#xff0c;然后递归调用方法来表示问题的解。递归算法对解决一大类问题很有效&#xff0c;它可以使算法简洁和易于理解。 递归本质是循环&a…...

[Python]unittest-单元测试

目录 unittest的大致构成: Test Fixture Test Case-测试用例 Test Suite-测试套件 Test Runner 批量执行脚本 makeSuite() TestLoader discover() 用例的执行顺序 忽略用例执行 skip skipIf skipUnless 断言 HTML测试报告 错误截图 unittest是python中的单元测…...

Jetpack:021-Jetpack中的滑动列表

文章目录 1. 概念介绍2. 使用方法2.1 函数参数2.2 列表成员 3. 示例代码4. 内容扩展5. 内容总结 我们在上一章回中介绍了Jetpack中底部导航栏相关的内容&#xff0c;本章回中主要介绍 滑动列表。闲话休提&#xff0c;让我们一起Talk Android Jetpack吧&#xff01; 1. 概念介绍…...

基于单片机的空气质量检测系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 技术交流认准下方 CSDN 官方提供的联系方式 文章目录 概要 一、主要内容二、系统方案设计2.1 系统方案设计2.2 主控制器模块选择 三、 系统软件设计4.1 程序结构分析4.2系统程序…...

论文阅读——InstructGPT

论文&#xff1a;Training_language_models_to_follow_instructions_with_human_feedback.pdf (openai.com) github&#xff1a;GitHub - openai/following-instructions-human-feedback 将语言模型做得更大并不能从本质上使它们更好地遵循用户的意图。例如&#xff0c;大型语…...

【表面缺陷检测】铝型材表面缺陷检测数据集介绍(含xml标签文件)

一、铝型材介绍 铝型材是一种由铝合金材料制成的&#xff0c;具有固定截面形状和尺寸的条形建材。由于其优良的物理性能和广泛的应用领域&#xff0c;铝型材在现代工业和生活中发挥着重要的作用。 1、铝型材的分类 根据截面形状的不同&#xff0c;铝型材可分为角铝、槽铝、工…...

我的学习:从本科到研究生的认识与实践经验总结

学习实践经历 18年 上大学以后&#xff0c;因为对计算机的喜爱和对未知编程技术的好奇和探索&#xff0c;选择了从零开始学习程序设计&#xff0c;经过实践&#xff0c;选择了转专业到计算机科学与技术&#xff0c;开始了我的计算机学习之路。 19年 因为想要拓宽自己的专业能力…...

云游长江大桥,3DCAT实时云渲染助力打造沉浸化数字文旅平台

南京长江大桥是中国第一座自主设计建造的双层公路铁路桥&#xff0c;也是世界上最早的双层公路铁路桥之一。它不仅是一座桥梁&#xff0c;更是一座历史文化的见证者和传承者。它见证了中国人民的智慧和奋斗&#xff0c;承载了中国社会的变迁和发展。 如何让这座不可移动的文物…...

【音视频|PCM】PCM格式详解

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…...

行为型模式-行为型模式

在模板模式中&#xff0c;一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现&#xff0c;但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 意图&#xff1a;定义一个操作中的算法的骨架&#xff0c;而将一些步骤延迟到子类…...

openpnp - Warning - Unknown firmware

文章目录 openpnp - Warning - Unknown firmware概述笔记https://github.com/openpnp/openpnp/wiki/Motion-Controller-Firmwares备注END openpnp - Warning - Unknown firmware 概述 接上飞达控制板后, 显示未知固件的警告 开始没看源码之前, 总以为是回答的版本号不合适, …...

Android 中如何使用 App Links

1. 简介 什么是 App Links呢&#xff1f;App Links 是 Android 6.0 (API 级别23) 引入的新功能&#xff0c;它是基于 DeepLinking&#xff0c;允许应用自动处理网站的 URL&#xff0c;而无需提示用户启动相应的应用。 例如&#xff1a;如果你在手机浏览器中输入了某个网站&am…...

7 款好用的 PDF 密码删除工具

这是最佳 PDF 密码删除工具列表。该列表包括免费和付费软件。将要在线完成的所有事情都需要密码才能感到安全。数据传输也是如此。大多数数据是通过文件传输的&#xff0c;PDF有自己的标志。PDF是一种灵活的文件格式&#xff0c;因此也可以专业使用。 有多种PDF 编辑器软件&am…...

你一般什么时候会用到GPT?

GPT&#xff08;Generative Pre-trained Transformer&#xff09;是一种自然语言处理技术&#xff0c;它在各种领域和场景中都有广泛的应用。下面将详细介绍一些常见的情况&#xff0c;人们在这些情况下通常会使用GPT&#xff1a; 自然语言生成&#xff1a; GPT可以用于生成文本…...

YUV编码格式解析

YUV 颜色编码 YUV 颜色编码采用的是 明亮度 和 色度 来指定像素的颜色。 其中&#xff0c;Y 表示明亮度&#xff08;Luminance、Luma&#xff09;&#xff0c;而 U 和 V 表示色度&#xff08;Chrominance、Chroma&#xff09;。 而色度又定义了颜色的两个方面&#xff1a;色…...

mysql-面试50题-5

一、查询数据 ymysql-面试50题-2-CSDN博客 二、问题 41.按照出生日期来算&#xff0c;当前月日 < 出生年月的月日则&#xff0c;年龄减一 mysql> select student.SId as 学生编号,student.Sname as 学生姓名, -> TIMESTAMPDIFF(YEAR,student.Sage,CURDATE(…...

微服务初始和Nacos安装

一)初始微服务: 微服务是将一个大型的&#xff0c;单一的应用程序拆分成多个小型服务&#xff0c;每一个服务负责于特定的业务功能&#xff0c;并且可以通过网络来和其他服务进行通讯&#xff0c;是一个思想&#xff0c;将一个大的项目拆分成多个小的项目&#xff0c;多个小的项…...

YouTube博主数据信息资源

YouTube博主数据信息资源 &#x1f525;我是一位拥有10年编程经验的程序猿&#xff0c;为你带来一个全新的优质资源 &#x1f50d;您是否在寻找最新、最活跃的YouTube博主数据&#xff0c;以助力你的项目、营销或研究&#xff1f; 我们的数据&#xff0c;您的优势&#xff1a;…...

私域数据安全与合规——企微引流必须注意的5个技术红线

做公域引流到企微&#xff0c;数据安全和合规是技术团队必须重视的问题。一旦踩红线&#xff0c;轻则功能受限&#xff0c;重则企微封禁甚至法律风险。今天梳理5个技术红线及应对方案。红线1&#xff1a;用户隐私数据存储企微API返回的用户信息包含ExternalUserID&#xff08;外…...

Element Plus访问卡顿怎么办?3个实用解决方案让你告别等待焦虑

Element Plus访问卡顿怎么办&#xff1f;3个实用解决方案让你告别等待焦虑 【免费下载链接】element-plus &#x1f389; A Vue.js 3 UI Library made by Element team 项目地址: https://gitcode.com/GitHub_Trending/el/element-plus 还在为Element Plus官网加载缓慢而…...

STM32 SRAM调试实战与优化技巧

1. STM32 SRAM调试实战指南在嵌入式开发中&#xff0c;我们通常将程序烧录到Flash中运行。但当你需要快速验证代码、调试硬件问题或进行临时测试时&#xff0c;使用STM32内部SRAM运行程序会是个高效的选择。我最近在调试一个LED控制程序时&#xff0c;就采用了SRAM运行的方式&a…...

SAP BAPI实战指南:核心模块高频接口速查与应用解析

1. SAP BAPI入门&#xff1a;为什么开发者需要这份速查手册 第一次接触SAP BAPI时&#xff0c;我盯着满屏的接口文档差点崩溃——光是FICO模块就有二十多个常用BAPI&#xff0c;每个接口的参数列表长得像毕业论文。后来在项目上踩过几次坑才明白&#xff0c;BAPI的难点不在于技…...

《跨摄像机追踪的终局:镜像视界空间计算方案深度解析》——从“识别与匹配”走向“空间计算与连续存在”的最终形态

跨摄像机追踪的终局&#xff1a;镜像视界空间计算方案深度解析——从“识别与匹配”走向“空间计算与连续存在”的最终形态发布单位&#xff1a;镜像视界&#xff08;浙江&#xff09;科技有限公司一、问题终局&#xff1a;跨摄像机追踪到底要解决什么&#xff1f;在过去十年中…...

告别微信传文件!用LocalSend+cpolar搭建私人远程文件库(Windows保姆级教程)

打造私人云存储&#xff1a;LocalSend与cpolar的极简文件共享方案 你是否经历过这样的场景&#xff1a;在咖啡馆急需调取家里电脑的一份文档&#xff0c;却只能对着微信传输助手的"文件大小超过限制"提示干着急&#xff1f;或是出差在外&#xff0c;发现手机里缺少一…...

手把手教你用Python计算斯皮尔曼相关系数:从手动推导到scipy一键调用

深入掌握Python中的斯皮尔曼相关系数&#xff1a;从数学原理到实战应用 在数据分析领域&#xff0c;理解变量之间的关系是至关重要的。斯皮尔曼相关系数作为一种非参数统计量&#xff0c;能够揭示数据间的单调关联&#xff0c;而不仅仅是线性关系。本文将带你从基础概念出发&am…...

DFT工程师的隐藏技巧:深入解读TestMAX中Shared与Dedicated Wrapper Cell的选择策略

DFT工程师的隐藏技巧&#xff1a;深入解读TestMAX中Shared与Dedicated Wrapper Cell的选择策略 在芯片设计的可测试性设计&#xff08;DFT&#xff09;领域&#xff0c;Wrapper Cell的选择往往被视为一项"黑盒"操作——工程师们习惯依赖EDA工具自动完成&#xff0c;却…...

告别手动填表!用CANoe 11.0 (x64)模板快速创建DBC数据库(附Signal/Message避坑指南)

告别手动填表&#xff01;用CANoe 11.0 (x64)模板快速创建DBC数据库&#xff08;附Signal/Message避坑指南&#xff09; 在汽车电子开发领域&#xff0c;DBC数据库的创建往往是工程师们既熟悉又头疼的环节。面对动辄上百个信号的需求表&#xff0c;传统的手动创建方式不仅耗时费…...

大模型本地推理显卡怎么选?实测Tesla P40、Titan RTX和RTX A3000的性价比之战

大模型本地推理显卡选购实战指南&#xff1a;Tesla P40、Titan RTX与RTX A3000深度横评 当你在深夜调试一个70亿参数的LLM模型时&#xff0c;突然弹出的"CUDA out of memory"错误提示可能是每个AI开发者最不愿看到的画面。选择一张合适的推理显卡&#xff0c;往往意…...