了解 XML结构(一)
文章目录
- 1 XML定义
- 2 了解XML结构
- 3 XML节点类型
- 4 加载读取XML
- 5 小结
1 XML定义
XML是一种可扩展标记语言(Extensible Markup Language, XML),可以用来标记数据,定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
2 了解XML结构
<?xml version="1.0"?><books><book><author>张三</author><price format="dollar">36.75</price><pubdate>2022/09</pubdate></book><pubinfo><publisher>台海出版社</publisher><state>完成</state></pubinfo></books>

1、 有且仅有一个根节点books
2、元素节点Node之间是父子关系(书籍和作者)或兄弟关系(价格和出版日期)
3、元素节点还可以拥有自己的属性,比如价格的属性format格式(人民币/美元)。format的属性值是dollar.
4、根元素是books, 下面的元素子节点有book和pubinfo; book中有元素节点price ,其中price 的值是36.75;price 有自己的属性format, format的值是dollar.
3 XML节点类型
>>>>>>>>>>>>>>>>>>>>>>| DOM节点类型 | 对象 | 描述 |
| Document | XmlDocument | 树中所有节点的容器。 |
| DocumentFragment | XmlDocumentFragment | 包含一个或多个不带任何树结构的节点的临时袋 |
| DocumentType | XmlDocumentType | 表示!DOCTYPE...节点 |
| EntityReference | XmlEntityReference | 表示非扩展的实体引用文本 |
| 元素 | XmlElement | 表示元素节点 |
| Attr | XmlAttribute | 元素的属性 |
| 注释 | XmlComment | 注释结点 |
| Text | XmlText | 属于某个元素或属性的文本 |
| 实体 | XmlEntiry | 表示XML文档中的 !ENTIRY...声明 |
| Notation | XmlNotation | 表示DTD中的声明表示法 |
4 加载读取XML
使用下面的xml内容,保存到D:\books.xml
<?xml version="1.0"?><books><book><author>张三</author><price format="dollar">36.75</price><pubdate>2022/09</pubdate></book><pubinfo><publisher>台海出版社</publisher><state>完成</state></pubinfo></books>
加载xml文档,并读取结点内容打印出来
//创建 XmlDocument 对象XmlDocument xml = new XmlDocument();//加载文档xml.Load(@"D:\books.xml");//获取XML文档的根元素XmlElement docElement = xml.DocumentElement;Console.WriteLine("docElement is :" + docElement.LocalName);//获取根元素下的第一个子节点XmlNode bookNode = docElement.FirstChild;Console.WriteLine("bookNode is :" + bookNode.LocalName);foreach(XmlNode node in bookNode.ChildNodes){//遍历book中的节点Console.WriteLine("node is :" + node.LocalName);Console.WriteLine("node Text is :" + node.InnerText);}
运行结果输出:
docElement is :books
bookNode is :book
node is :author
node Text is :张三
node is :price
node Text is :36.75
node is :pubdate
node Text is :2022/09
5 小结
XML文档的结构
1 有且仅有一个根节点
2 以<?xml version="1.0" encoding="utf-8"?>开头
3 XML类似一个树形结构,结点之间关系可以是父子关系或兄弟同级关系
4 每个节点有自己的文本和属性,对应的属性也有属性值。
5 每个节点和属性都是我们自定义语言去描述的
相关文章:
了解 XML结构(一)
文章目录 1 XML定义2 了解XML结构3 XML节点类型4 加载读取XML5 小结 1 XML定义 XML是一种可扩展标记语言(Extensible Markup Language, XML),可以用来标记数据,定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 …...
Vue简单语法记录
指令 v-show:展示和隐藏 如图片的展示和隐藏 (底层是其实已经创建了 加了个css属性,display none)v-if:创建和删除 创建和删除,删除就真的没了v-for: 遍历指令 v-for"item in list&…...
matplotlib的安装和使用教程:中文字体及语言参数设置
matplotlib是一个常用的数据可视化库,广泛应用于科学研究、工程设计、金融分析等领域。由于其强大的功能和易用性,matplotlib已经成为了广大科研工作者和数据分析师的必备工具之一。本文将重点介绍matplotlib的安装和允许中文及几种字体的方法。 一、mat…...
mysql深分页
第一种:主键自增id情况: 未改: select * from wx_product_category_info where category_name_cn#{categoryNameCn} and category_type#{categoryType} order by id asclimit #{pageNum}, #{pageSize};在普通的limit条件下,如果…...
【JavaScript由浅入深】常用的正则表达式
【JavaScript由浅入深】常用的正则表达式 文章目录 【JavaScript由浅入深】常用的正则表达式写在前面一、认识正则表达式1.1 正则表达式的概念 二、正则表达式的使用2.1 使用构造函数创建正则表达式2.2 使用字面量创建正则表达式2.3 补充 三、正则表达式常见规则3.1 字符类3.2 …...
QT常用类型字节数组QByteArray及其基本使用
目录 概述特点常见函数QByteArray::append:QByteArray::insert:QByteArray::replace:QByteArray::remove:QByteArray::toHex:QByteArray::fromHex:QByteArray::toBase64:QByteArray::fromBase64…...
APP 兼容性测试是什么?8年测试老鸟告诉你
1、APP 兼容性测试认识 随着 APP 应用范围越来越广,用户群体越来越大,终端设备的型号也越来越多,移动终端碎片化加剧,使得 APP 兼容性测试成为测试质量保障必须要考虑的环节。 APP 兼容性测试通常会考虑:操作系统、厂…...
Golang每日一练(leetDay0061) 表列序号、阶乘后的零
目录 171. Excel 表列序号 Excel Sheet Column Number 🌟 172. 阶乘后的零 Factorial Trailing Zeroes 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练…...
深度解析C++异常处理机制:最佳实践、性能分析和挑战
C 基础知识 八 异常处理 下篇 一、异常处理实践1 编写高质量代码中的异常处理1.1 只在必要时才使用异常1.2 尽量减小异常的范围1.3 不要隐藏异常1.4 不要在析构函数中抛出异常1.5 使用 RAII 技术来管理资源 2 维护异常类2.1 按照异常类型的功能来定义异常类2.2 继承现有的异常类…...
【Spring事务】Spring事务事件控制,解决业务异步操作
使用背景 在业务中,经常会有这样的需求,在数据库事务提交之后,发送异步消息或者进行其他的事务操作。 例如当用户注册成功之后,发送激活码,如果用户注册后就执行发送激活码,但是在用户保存时出现提交事务…...
Java 中的注释有哪些?
在 Java 中,有三种注释方式:单行注释、多行注释和文档注释。注释是程序中的一种重要的辅助性说明文字,可以增加程序的可读性和可维护性,方便其他程序员阅读和理解代码。 单行注释 单行注释是指以“//”开头的注释,注释…...
yolov4
1 V4版本概述 集各种优秀方案于一身,嫁接了众多主流的目标识别方面的情况。 V4 贡献 3. 数据增强策略分析 BOF Bag of freebies(BOF) Mosiac 数据增强 Mixup 比如将狗和猫的两张图片混合,一半猫,一半狗。 label 也变成 Dog 0.5 , Cat 0…...
金融学第二版笔记第一章1.1
第1部分 金融和金融体系 第一章金融学 1.1 一、 对金融学进行界定 1.金融 金融是货币流通、信用活动及与之相关的经济行为的总称。 简言之,就是货币资金的融通。一般是指以银行、证券市场等为中心的货币流通和信用调节活动,包括货币的发行和流通、存…...
[架构之路-193]-《软考-系统分析师》-2-应用数学 - 项目周期与关键路径(PERT图、甘特图、单代号网络图、双代号网络图)
1. 关键概念 1.1 关键路径 关键路径通常(但并非总是)是决定项目工期的进度活动序列。它是项目中最长的路径,即使很小浮动也可能直接影响整个项目的最早完成时间。关键路径的工期决定了整个项目的工期,任何关键路径上的终端元素…...
滋灌中小企业,分销伙伴和华为来做“送水人”
最近有个段子:第一批靠生成式AI赚大钱的人,既不是研发人员,也不是国内大厂,而是卖课的。 大家笑谈,每一轮新技术的掘金之路,最先致富的都是送水、卖铲子的。 这其实隐藏了一个信息技术产业的普遍规律&#…...
面试华为测试岗,收到offer后我却毫不犹豫拒绝了....
我大学学的是计算机专业,毕业的时候,对于找工作比较迷茫,也不知道当时怎么想的,一头就扎进了一家外包公司,一干就是2年。我想说的是,但凡有点机会,千万别去外包! 在深思熟虑过后&am…...
深入了解浮点型变量输入与输出
深入了解浮点型变量输入与输出 前言 C 语言中浮点型变量的输入和输出在程序开发中非常常见,比如经常出现在数据处理和科学计算中。在此篇文章中,我们将探讨浮点型变量输入和输出的一些细节和注意事项。 浮点型变量的定义和初始化 在 C 语言中&#x…...
Vector - CAPL - CANoe硬件配置函数 - 03
目录 canFlushTxQueue -- 刷新已定义的Tx队列 代码示例 canSetChannelAcc -- CANoe接收过滤器设置 代码示例 canSetChannelMode -- CAN控制器Tx使能/失能 代码示例 canSetChannelOutput -- Ack自应答使能/失能 代码示例 getCardTypeEx -- CAN控制器类型 canFlushTxQue…...
单开网页应用利器 - BroadcastChannel
前言 前段时间在做一个基于 psd 模板生成图片的应用,其中重要的功能就是打开编辑器页面来设计出图。但是有个问题,每当我点击一个模板,就会新开一个浏览器页签。现代浏览器是以空间换时间的运行思路来提高效率,这就导致了内存开销…...
OpenCv更改颜色空间以及图像阈值
本文主要讲解以下几个方面: 如何将图片从一个颜色空间转换到另一个,例如 BGR 到 Gray,BGR 到 HSV 等。简单阈值法另外,我们会创建一个从图片中提取彩色对象的应用。 1.改变颜色空间 cv.cvtColor(img, flag) 参数flag表示颜色空间转换的方…...
神州数码无线网络(AC+AP)实战部署与优化指南
1. 神州数码ACAP无线网络部署前的规划准备 第一次接触神州数码无线网络方案时,我被它简洁的架构设计惊艳到了。AC(无线控制器)AP(接入点)的组网模式,特别适合500-2000平米的中型企业办公环境。但在真正动手…...
新手避坑指南:PX4飞控连接TFmini、LIDAR Lite V3等定高雷达的完整接线与参数配置(QGC实操)
PX4飞控与定高雷达实战:从接线到参数配置的避坑指南 刚拿到PX4飞控和一堆传感器的新手们,面对密密麻麻的接口和参数设置,是不是有种无从下手的感觉?特别是当你需要连接定高雷达时,不同品牌(北醒TFmini、LID…...
Android Studio中文界面汉化终极指南:5分钟打造舒适开发环境
Android Studio中文界面汉化终极指南:5分钟打造舒适开发环境 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 还在为An…...
告别台式机没麦克风的尴尬:用SonoBus+VB-Cable把手机秒变无线麦(保姆级配置)
台式机零成本无线麦克风方案:SonoBus与VB-Cable实战指南 你是否遇到过这样的尴尬时刻——台式电脑突然需要语音沟通,却发现没有麦克风?无论是紧急会议、游戏开黑还是直播互动,这种硬件缺失带来的困扰可能让你措手不及。本文将介绍…...
CH347的JTAG模式怎么选?实测F/T型号在openFPGALoader下的速度与兼容性差异
CH347F与CH347T JTAG模式深度评测:openFPGALoader下的实战性能差异 当你在淘宝搜索"CH347模块"时,会发现两种主要型号:F型多功能版和T型切换版。价格相差无几,但商家描述往往含糊其辞。作为FPGA开发者,最关…...
UEFI SCT编译调试踩坑记:我的AARCH64环境搭建与问题解决实录
UEFI SCT编译调试实战:AARCH64环境搭建与疑难问题全解析 当你在深夜的办公室里盯着屏幕上闪烁的光标,第N次尝试编译UEFI SCT测试套件时,那种既熟悉又陌生的挫败感再次袭来。作为UEFI开发者,我们都经历过这样的时刻——官方文档看似…...
用STM32的定时器输入捕获功能,精准解码433MHz遥控器信号(附完整代码)
STM32定时器输入捕获技术解析:433MHz遥控信号精准解码实战 在智能家居DIY和工业控制领域,433MHz无线通信凭借其穿透性强、成本低廉的优势成为常见选择。但如何稳定可靠地解码这些无线信号,一直是开发者面临的挑战。本文将深入探讨基于STM32硬…...
10分钟掌握全网资源下载神器:res-downloader从入门到精通
10分钟掌握全网资源下载神器:res-downloader从入门到精通 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 你是否遇…...
Android设备指纹采集指南:从get_token协议看短视频SDK如何生成唯一设备ID
Android设备指纹生成机制深度解析:从基础原理到合规实践 在移动应用生态中,设备指纹技术扮演着至关重要的角色。它不仅关系到用户体验的连贯性,更是风控系统的基础支撑。本文将系统性地剖析Android平台下设备指纹的生成逻辑、技术实现方案以及…...
Z-Image Atelier 跨平台部署:应对不同操作系统的环境配置要点
Z-Image Atelier 跨平台部署:应对不同操作系统的环境配置要点 最近在帮几个朋友部署Z-Image Atelier这个挺有意思的AI图像工具,发现大家用的系统五花八门,有Windows、有Ubuntu,还有用Mac的。结果就是,照着同一个教程走…...
