XML语法概述

XML语法概述

XML文档使用的是自描述的和简单的语法,一个XML文档最基本的构成包括:声明,处理指令(可选)和元素。以下是一个简单的XML文档:
 1<?XML version ="1.0" encoding ="GB2312" standalone="yes" ?>
 2<?XML-stylesheet type="text/xsl" href="yxfqust.xsl" 
?>
 3<!--以下是一个学生名单
-->
 4<学生名单
>
 5    <学生
>
 6      <学号>2003081205</学号
>
 7      <姓名>田淋</姓名
>
 8      <班级>计03.2班</班级
>
 9    </学生
>
10    <学生
>
11      <学号>2003081232</学号
>
12      <姓名>杨雪锋</姓名
>
13      <班级>计03.2班</班级
>
14    </学生
>
15</学生名单>
第1行是XML声明,第2行是处理指令,第3行是注释,4到15就是文档的各个元素。(注:XML标记都是大小写敏感的).
一。文档的声明:
<?XML version="1.0" encoding="GB2312" standalone="yes"?>
XML标记说明它是一个XML文档,后面两个属性值表明了它的版本号和编码标准,standalone取yes表明该文件未引明其他外部XML文件。
二。处理指令
   格式:<?处理指令名 处理指令信息 ?>
<?XML-stylesheet type="text/xsl" href="yxfqust.xsl" ?>
三。注释:
格式:<!--注释内容-->
<!--以下是一个学生名单-->
注释应注意的问题:
       1.注释不能出现在
XML声明之前;
       2.注释不能出现在标记中;
       3.注释中不能出现连续两个连字符,即"--"  如:<!--this is  a bad document.--do you know!-->;
       4.注释中可包含元素,但元素中不能包含"--"包含的元素解析时被忽略;
       5.注释不能嵌套;
四。元素与标记:
       所有的
XML元素必须合理包含,且所有的XML文档必须有一个根元素。如同HTML一样,XML元素同样也可以拥有属性。XML元素的属性以名字/值成对的出现。XML语法规范要求XML元素属性值必须用引号引着。请看下面的两个例子,第一个是错误的,第二个是正确的。
<?XML version="1.0" encoding="ISO-8859-1"?>
<note date=12/11/2002>
<to>Tove</to>

<from>Jani</from>
</note>
---------------------------
<?XML version="1.0" encoding="ISO-8859-1"?>
<note date="12/11/2002">
<to>Tove</to>
<from>Jani</from>
</note>
格式:<标记 属性名1="值1".......>数据内容</标记>
XML元素是可以扩展的,它们之间有关联,XML元素有简单的命名规则:

Names can contain letters, numbers, and other characters (元素的名字可以包含子母,数字和其他字符。) Names must not start with a number or punctuation character (元素的名字不能以数字或者标点符号开头。) Names must not start with the letters XML (or XML or XML ..) (元素的名字不能以XML(或者XMLXML,XML...)开头。) Names cannot contain spaces(元素的名字不能包含空格。)

元素是XML文档的灵魂,它构成了文档的主要内容。XML元素则是由标记来定义的,同时标记分为非空标记和空标记。
       1.非空标记格式:
   <标记>元素内容</标记>    如:

   <学号>2003081205</学号>
   
<姓名>田淋</姓名>
   
<班级>计03.2班</班级>

      2.空标记格式:
 <标记名 属性名="属性值", 属性名="属性值"......> 如:<田淋 学号="2003081205">

同时元素也支持合理的嵌套,如上面的文档例子,学生名单与学生就是一层嵌套。嵌套需满足以下规则:
      1.所有
XML文档都从一个根节点开始,根节点包含了一个根元素;
      2.文档内所有其他元素必须包含在根元素中;
      3.嵌套在内的为子元素,同一层的互为兄弟元素;
      4.子元素还可以包含子元素;
      5.包含子元素的元素称为分支,没有子元素的元素称为树叶;
数据既可以存储在子元素中也可以存储在属性中,应尽量使用子元素而避免使用属性。原因如下:

attributes cannot contain multiple values (child elements can) (属性不能包含多个值(子元素可以)) attributes are not easily expandable (for future changes) (属性不容易扩展) attributes cannot describe structures (child elements can) (属性不能够描述结构(子元素可以)) attributes are more difficult to manipulate by program code (属性很难被程序代码处理) attribute values are not easy to test against a Document Type Definition (DTD) - which is used to define the legal elements of an XML document(属性值很难通过DTD进行测试)



手把手教你用示波器实测LVDS/CML信号:从波形解读到故障排查(附实测图) 本文详细介绍了如何使用示波器实测LVDS和CML信号,从波形解读到故障排查的全过程。涵盖差分探头选择、示波器配置、标准波形特征解读、眼图分析技巧以及高速信号捕获要点,帮助硬件工程师快速诊断和解决信号完整性问题。附实测图和案例,提升高速数字电路设计效率。 阅读详情

相关推荐

【STM32】CubeMx系列教程之移植FreeRTOS

本文详细介绍了在STM32F429上通过CubeMX工具移植FreeRTOS的方法。主要内容包括:1)配置系统时钟源,将TIM1替换SysTick作为时钟基准;2)FreeRTOS的创建与配置,包括任务创建、堆栈大小设置等;3)关键配置参数说明,如堆大小建议设为RAM的50%-70%;4)常用函数如堆栈监控、任务挂起/恢复等。文章提供了从基础配置到深入优化的完整移植指南,适合STM32开发者参考使用。

JackieJin123的博客 745

模型训练中的标注图片truncated和difficult的含义

folder、filename为路径和文件名; source存储了文件来源相关信息; owner为文件所有者; 以上为标注图片的相关背景信息,可不专门关注; size存储了文件大小 width宽度、height高度、depth维度(即灰度图像或RGB三通道) segmentation为1、0值判断该图片是否参与分割任务; object为一个标注对象的相关信息,此处为文件主要信息, name 对象名, pose 观察角度(应用于某些分类器从特定的视觉角度分类目标), truncated 标注对象是否为截断的(

pvmsmfchcs的博客 3223

1、Ka频段双极化低剖面卫通相控阵天线

设计了双馈口叠层十字缝隙耦合天线,采用“双线极化天线 +旋转馈电 + 移相控制”架构,采用双馈口的叠层十字缝隙耦合天线,并以 2 x2 阵列为主体,旋转排布实现二次圆极化,同时极化可切换,通过多层 PCB 工艺实现天线层、控制/电源层功分网终层、芯片层一体化集成,研制出 64 阵元的圆极化可切换发射天线,测试结果表明:天线工作 频段为 27.5 ~31 GHz,可实现60°扫描,法向轴比

qq_43416206的博客 4307

(二)Python创建、修改、保存XML文件——xml.etree.ElementTree模块

XML tree and elements XML是一种固有的分层数据格式,最自然的表示方法是使用树。ET有两个类为此目的—ElementTree表示整个XML文档为树,元素表示此树中的单个节点。与整个文档的交互(读取和写入文件)通常是在ElementTree级别上完成的。与单个XML元素及其子元素的交互是在元素级别上完成的。 读入xml格式的文件,并显示全部行数据: from xml.etree import ElementTree as ET file_xml = r'/Users/edz/Docu

Yale-曼陀罗 2万+

YOLO v5转voc数据集格式转coco格式时出现AttributeError: ‘ NoneType‘ object has no attribute ‘text ‘ 报错——解决办法

File "XXX(运行文件路径)", line 50, in convert_ annotation。在无difficult内容的时候 xml转txt的代码会因为读取不到而报错。这个可能是xml文件中的object节点没有difficult的这个属性。在xml文件中添加diffcult这个属性。

weixin_43325085的博客 738

python解析xml文件增删查找

python解析xml文件增删查找 XML文件 判断bndbox大小,并为object添加子节点difficult #!/usr/bin/env python # -*- coding:utf-8 -*- import os import os.path from xml.etree import ElementTree as ET path='C:/Users/my/Desktop/xml...

Counting_Stars的博客 1973

【深度学习】关于xml文件中不存在 difficult 参数导致的 AP 为 0

xml 标签不存在 difficult 参数导致的 voc_eval 计算 AP 结果为 0

MangoloD的博客 1517

通过GSM模块发送经纬度求救信息。

本博客作为实验笔记,仅供学习交流。(转载请注明出处) 本实验通过GSM模块:SIM900a,实现向特定手机发送sos求救信号,并且利用GPS模块:微科VK2828U7G5LF,将经纬度信息同时发送到手机中。目前已经实现通过串口2发送短信到手机,通过串口3实现接受gps数据并解析至单片机(串口1已预留其他功能)。 本实验的不足之处:由于接收的卫星数越多,GPS信号越精确,定位误差越小,下一...

愿技术,也有温情。给需要的人,带来价值 2986

技术公益|高德「卫星求救」与「无网导航」,用技术开拓无人区

无网导航通过技术保障用户体验。高德用户会在某些位置发起请求,如果是网络原因导致的请求失败,那就可以识别出来这块区域网络不顺畅,如果大量用户都在这里发出网络请求失败信息,就形成了我们所说的无网区域,用户本次导航途经无网区域,高德APP会提前缓存导航数据至后台,以备不时之需。高德通过与各大手机厂商的合作,接入厂商卫星能力SDK,统一接口标准,构建了一套通用化卫星通信解决方案,以此借助手机的硬件能力,建立与卫星的双向通信,将救援信号发送至卫星的同时也能从卫星接收对救援信息的回复,实现整个卫星救援能力上的闭环。

高德技术 1602

GPS 应急救援:户外迷路时,如何用 GPS 发出求救信号?这 3 种场景的操作指南救过很多人

摘要:本文提供户外迷路时3种GPS求救方案:1)手机有信号时,通过指南针或导航APP获取精确经纬度坐标,搭配环境描述联系专业救援;2)无信号时,利用国产手机北斗短报文功能或离线地图标记位置;3)无电子设备时,可手动记录关键点位坐标或使用手表太阳法估算方位。核心建议包括原地待援、提前测试设备、不依赖单一技术,并强调发送精准坐标与描述环境特征的重要性。出发前5分钟准备可显著提升遇险获救概率。

Cpythonjavamacos的博客 2093

利用树莓派制作SOS求救灯

1、SOS求救信号:快闪烁3次,慢闪烁3次,快闪烁3次 2、设备: 树莓派 1个10K电阻 1个LED灯 面包板 电线若干 3、接线图 4、程序 import time,RPi.GPIO as GPIO     GPIO.setmode(GPIO.BCM) GPIO.setup(17,GPIO.OUT) p1=GPIO.PWM(17,1) while T

huayucong的博客 1万+

51单片机控制蜂鸣器发SOS国际求救信号声音实验

说明:本文是51单片机控制蜂鸣器发声实验的高级版,和上个实验差不多,上个实验是控制蜂鸣器发声,本实验可以理解为控制蜂鸣器间断发出不同长度的声音,本文同样重在夯实基础,如果是大神,请自觉飘过。 好了我们言归正传,轮船行驶在辽阔的大海里,当发生意外事故的时候,“SOS”遇难信号便飞向海空,传往四面八方,我们都知道SOS信号是三短,三长,三短(摩尔斯电码),那么我们要如何去控制蜂鸣器发出这样的信号呢? 其实用单片机控制蜂鸣器发SOS声也很简单,原理基本上和上个实验差不多,控制方式稍微会复杂一点点,我们下面会详细介

从零开始学单片机的博客 2743

博容安可4G定位室内实测:地下车库、电梯、隧道求救信号能发出吗?

卫星定位在室内、地下车库等场景常失效。本文解析博容安可多模定位技术的补盲机制,验证其在卫星信号盲区内的求救可靠性。

yydbjx的博客 293

跌倒检测后HiChatBox自动求救机制

本文介绍基于HiChatBox和MPU6050的跌倒自动检测与求救系统,通过边缘AI实现本地化实时判断,结合SIP协议快速拨打电话报警,具备低延迟、高隐私和强可靠特性,适用于智慧养老场景。

weixin_42513209的博客 493

血管健康的隐形威胁如何破局?不能忽视的4个血管“求救”信号

当我们关注到这些伤害血管的习惯和血管堵塞的信号后,及时进行精准的检测对于预防和治疗血管疾病至关重要。超导心磁图仪作为一种新兴的无创检测技术,为血管健康检测带来了新的突破。它通过超导量子干涉器和全张量计算,能够极其灵敏地测量心脏电活动产生的微弱磁场。当心脏周围的血管出现病变,如冠状动脉狭窄、微血管循环障碍、心肌缺血等,会导致心脏电活动的异常,进而引起磁场的变化。并通过信号处理和分析技术,重建出心脏的磁场分布和电活动图像,从而精准地评估心脏和血管的功能状态。

1004

STM32F1与跌倒检测触发SOS一键求救机制

基于STM32F1与MPU6050设计低成本跌倒检测系统,通过三阶段算法精准识别跌倒事件,结合GSM模块实现自动SOS报警。系统支持低功耗运行、多重报警方式与误报抑制,适用于独居老人安全监护,具备高可靠性与实用价值。

weixin_35751412的博客 1004

硬核拆解:不可充电的求救器,后期使用成本到底高不高?

成本项|博容安可(399元档)|充电型竞品(以200元档为例)| | ---- | ---- | ---- | |初次购买|399元|200元| |10年电池/整机更换|约50元(若激活后换电池)|约400元(2-3年换机×2次)| |充电时间成本|0|60小时(120次×30分钟)| |流量/服务费|0(终身免流量、免服务费)|约300元(部分竞品年费30-50元)| |失效风险成本|极低|高(忘记充电=砖头)| |10年总成本|约449元|约900元+|A:可自助更换,拧开后盖替换即可,无需工具。

yydbjx的博客 313

Arduino实战:用莫尔斯码构建S.O.S求救信号灯

本文详细介绍了如何使用Arduino开发板、LED和电阻构建一个S.O.S莫尔斯码求救信号灯。从硬件电路搭建到软件编程,逐步讲解如何实现三短三长三短的闪光信号,并提供了代码优化和常见问题解决方案,是学习电子编程和应急设备制作的实用入门项目。

pytorchlight8的博客 1080

技术实测:SOS 求救器室内 ,地下, 电梯定位不准,买了是智商税吗

设备类型|室内定位能力|盲区应对| | ---- | ---- | ---- | |纯GPS定位器(部分白牌)|完全失效,大幅漂移|无| |KACHIE发圈(蓝牙版)|依赖手机,手机在室则可用|手机被抢/没电则全盲| |华为WATCH/Apple Watch|依赖手机蓝牙或WiFi|手机不在身边则失效| |博容安可智能SOS定位求救器|WiFi+LBS双补盲,录音持续|独立4G,缓存补传|若室内4G信号弱,文件暂存本地,信号恢复后自动补传云端,不会丢失。的组合,远比一个孤零零的坐标更有实战价值。

yydbjx的博客 226

基于STM32单片机的老人防丢报警系统 GPS定位 跌倒检测 心率血氧检测 一键求救设计 实物+源程序+原理图+仿真+其它资料

基于STM32老人防跌倒系统,本次设计采用STM32F103C8T6单片机作为处理器,心率体温传感器采集当前老人生理特征,ADXL345进行判断老人是否跌倒,GPS模块用于监测经纬度信息和时间信息,单片机接收到GPS定位模块发送来的信息并进行处理,最终显示在OLED液晶屏上,此外还具有短信发送功能,当按下发送按键时,单片机通过引脚控制SIM800A模块将精度和纬度信息发送到手机上进行定位信息展示。针对GPS定位系统的防老人走丢系统的现状和所要研究问题的分析。在这个过程中我查阅了大量的相关资料

qq_24269417的博客 3435

实测博容安可SOS定位求救器:48小时续航与米级定位在真实应急场景中的表现评估

作为一款”可能永远不用,但用一次就必须成功”的设备,它的价值不在日常体验,而在”确定性”。48小时续航、米级定位、十年待机,这三个数字构成了它的核心护城河。

yydbjx的博客 219

动力电池超级电容模型锂离子电池 铅酸电池 燃料电池 Simulink模型资料合集.zip

动力电池超级电容模型锂离子电池 铅酸电池 燃料电池 Simulink模型资料合集,,可以做为你的学习设计参考。

ADAMSCar仿真解析PPT教学课件.pptx

ADAMSCar仿真解析PPT教学课件.pptx

上一篇: 新的路程就要开始了
下一篇: javascript中事件的理解
javaplan
博客等级 码龄21年 1粉丝 3原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值