xml的语法

news2024/12/23 5:08:19

<!--
    1、每一个xml,有且只有一个根标签,所有xml标签必须写在根标签中
    2、标签必须要有合闭
    3、xml格式是否正确,可以通过浏览器打开xml。来校验xml格式是否正确
    4、xml是区别大小写的
    5、xml书写标签名时,不要出现空格等特殊字符
    6、标签命名时不要以数字开头
    7、在书写标签中时不要乱嵌套或相互嵌套  <name><age></name></age>
-->

特性:

    1、具有平台无关性,是一门独立的标记语言。

          a:系统无关性,不管是在Windows电脑上,还是苹果电脑上,解析出来的效果都是一样的

          b:语言无关性,不管用java还是c或者是其他语言进行解析,显示出来的效果都是一样的。

    2、具有自我描述性。

XML语法格式

      1、xml文档声明

             <?xml version="1.0" encoding="UTF-8"?>

       2、标记(元素/标签/节点)

              xml文档,是由一个个标记组成

             语法:开始标记:<标记名称>

                         结束标记:</标记名称>

3.一个xml文档里面,有且仅有一个根标记

4.标记名称是允许重复

 <persons>
   <person>
       <name> 李四 </name>
       <length>180cm</length>
   </person>
   <person>
       <name> 李四 </name>
       <length>200cm</length>
    </person>
 </persons>

5.标记除了开始和结束,还有属性,在标记开始时描述,由属性名和属性值组成。

               格式:可以包含0-n个属性,每一个属性都是一个键值对!

                           属性值必须要用引号引住。

6.注释

            注释不能写在文档声明前

            注释不能嵌套注释

                      格式:

                               注释开始:<!--

                               注释结束:-->

XML基本语法

xml: 可扩展的标记语言

1.文档声明

XML文件的后缀为.xml;

XML文本要求文件有一个头部声明(用来告诉解析器一些相关信息);

<?xml version="1.0" encoding="UTF-8"?>

头部声明是给解析器看的,表明当前文件是xml文件,XML版本为1.0,文件内容使用的字符编码为UTF-8。

注意:要小心在系统中这个xml文件保存时候的编码,是否和文件内容中设置的编码一致;

头部声明可以省略,如果不写,会默认加上<?xml version="1.0"?>。

注意:

XML语法很严格,只要有问题,浏览器就无法正常显示;

如果文件的保存格式不对,无法显示;

如果文件格式上有任何问题,也无法显示。

元素命名规则

一个XML元素可以包含字母、数字以及其它一些可见字符,但必须遵守下面的一些规范:

a. 区分大小写,例如,<P>和<p>是两个不同的标记。

b. 不能以数字开头.

c. 不能包含空格。

注意,XML语法十分严格,以上提到的点,任何一点出问题都不能在浏览器中正常显示。

3.属性

属性出现在 起始标签内部,和标签名用空格隔开。

它的基本格式为:

<元素名 属性名1="属性值" 属性名2="属性值" ...>

注意:

a. 一个元素可以有多个属性;

b. 属性值用双引号(")或单引号(')括起来;

c. 特定的属性名称在同一个元素标记中只能出现一次;

b. 属性值不能包括<, >, &等特殊字符。

例如:

<student id="100">

<name>TOM</name>

</student>

4.实体 ENTITY

xml文件中有些特殊的字符是不能直接表示出来的,例如:大于号,小于号,单引号、双引号等等,为了表示它们,我们可以借助实体完成。

实体可以分为两类:预定义实体、自定义实体。

a.预定义字符实体,由XML规范预先定义好了

&lt; <

&gt; >

&amp; &

&quot; "

&apos; '

注意:使用实体的格式是 &实体名字;

b.自定义实体 ENTITY

定义格式:

<!DOCTYPE 根元素名称[ //其他字符串也可以,并不必须是根元素名称

<!ENTITY 实体名1 "实体内容">

<!ENTITY 实体名2 "实体内容">

...

]>

eg:

<!DOCTYPE courses[

<!ENTITY company "昆山杰普软件科技有限公司">

]>

其中:company为实体名称;

  "昆山杰普软件科技有限公司"是实体内容;

实体的使用  &company;

4.注释

<!-- 这是一个注释 -->

注意:

a. 注释内容中不要出现--;

b. 不要把注释放在标记内部;

<Name <!-- the name -->>TOM</Name> 是不合适的

c. 注释不能嵌套;

d. 可以在除标记以外的任何地方放注释;

 命名规则

在XML中,可以使用自己需要的元素来扩展标记语言。

命名基本规则:

  • 元素名称不能以数字或特殊字符开头
  • 可以包含字母,数字,下划线等
  • 不能以字符串“XML”作为开头
  • 不能包含空格
  • 尽量不要包含特殊字符
  • 区分大小写

在 XML 中,空格会被保留

HTML 会把多个连续的空格字符裁减(合并)为一个:

HTML:
Hello           Tove
输出结果:Hello Tove

在 XML 中,文档中的空格不会被删减。

XML语法-属性

<student id="100">
    <name>Tom</name>
</student>

(1)属性值用双引号 " 或单引号 ' 分隔,如果属性值中有单引号,则用双引号分隔;如果有双引号,则用单引号分隔。那么如果属性值中既有单引号还有双引号怎么办?这种要使用实体(转义字符,类似于html中的空格符),XML 有 5 个预定义的实体字符,如下:

(2)一个元素可以有多个属性,它的基本格式为:

<元素名 属性名1="属性值1" 属性名2="属性值2">

(3)特定的属性名称在同一个元素标记中只能出现一次

(4)属性值不能包括 <,>,&,如果一定要包含,也要使用实体

XML 命名规则

XML 元素必须遵循以下命名规则:

  • 名称可以包含字母、数字以及其他的字符
  • 名称不能以数字或者标点符号开始
  • 名称不能以字母 xml(或者 XML、Xml 等等)开始
  • 名称不能包含空格

可使用任何名称,没有保留的字词。


最佳命名习惯

使名称具有描述性。使用下划线的名称也很不错:<first_name>、<last_name>。

名称应简短和简单,比如:<book_title>,而不是:<the_title_of_the_book>。

避免 "-" 字符。如果您按照这样的方式进行命名:"first-name",一些软件会认为您想要从 first 里边减去 name。

避免 "." 字符。如果您按照这样的方式进行命名:"first.name",一些软件会认为 "name" 是对象 "first" 的属性。

避免 ":" 字符。冒号会被转换为命名空间来使用(稍后介绍)。

XML 文档经常有一个对应的数据库,其中的字段会对应 XML 文档中的元素。有一个实用的经验,即使用数据库的命名规则来命名 XML 文档中的元素。

在 XML 中,éòá 等非英语字母是完全合法的,不过需要留意,您的软件供应商不支持这些字符时可能出现的问题。


XML 元素是可扩展的

XML 元素是可扩展,以携带更多的信息。

请看下面的 XML 实例:

<note> <to>Tove</to> <from>Jani</from> <body>Don't forget me this weekend!</body> </note>

让我们设想一下,我们创建了一个应用程序,可将 <to>、<from> 以及 <body> 元素从 XML 文档中提取出来,并产生以下的输出:

MESSAGE

To: Tove
From: Jani

Don't forget me this weekend!

想象一下,XML 文档的作者添加的一些额外信息:

<note> <date>2008-01-10</date> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>

那么这个应用程序会中断或崩溃吗?

不会。这个应用程序仍然可以找到 XML 文档中的 <to>、<from> 以及 <body> 元素,并产生同样的输出。

XML 的优势之一,就是可以在不中断应用程序的情况下进行扩展。

空元素 (empty element)

空元素

空元素在 XML 文档中可以有两种格式:

- <element/>
- <element></element>

如果一个 XML 元素没有内容,比如,<site></site> 我们称其为空元素 (empty element)。

空元素有一种特殊的写法,以 < 开始,然后是元素名称,然后以 /> 结束。比如,<site /> 。

xml 中的元素(标签)也 分成 单标签和双标签:

单标签

格式: <标签名 属性=”值” 属性=”值” ...... />

双标签

格式:< 标签名 属性=”值” 属性=”值” ......>文本数据或子标签</标签名>

单标签和双标签(重点)

单标签是由一个标签组成,用/>结尾,是一种简写。

双标签由开始标签和结束标签组成;双标签可以替换所有的单标签

xml的标签分为两种 单标签 和双标签 在xml中要求所有的标签必须闭合

单标签的格式:<标签/>  双标签:<标签> </标签>


  双标签在内部添加元素:

<book id="SN15151545454">
    <author>作者</author>
    <name>安徒生的童话</name>
    <price>939</price>
</book>


  单标签整合为一条XML标签:

<book id="SN15151545454" name = "安徒生童话"/>


 


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1098369.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JSKarel教学编程机器人使用介绍

JSKarel教学编程机器人使用介绍 为了避免被编程语言固有的复杂性所困扰&#xff0c;有一个被称为卡雷尔&#xff08;Karel&#xff09;机器人的微型世界&#xff08;microworld&#xff09;的简化环境&#xff0c;可以让编程初学者从中学习理解编程的基本概念&#xff0c;而不…

【JAVA-Day44】Java常用类StringBuffer解析

Java常用类StringBuffer解析 Java常用类StringBuffer解析一、什么是StringBuffer类二、StringBuffer类的方法2.1 append方法2.2 insert方法2.3 delete方法2.4 replace方法2.5 reverse方法2.6 toString方法2.7 capacity方法2.8 length方法 三、StringBuffer类的应用场景深入了解…

SGX 研究进展

目录 SGX 应用支持技术研究进展&#xff08;笔记&#xff09;SGX 整体架构SGX安全机制隔离执行认证密封 SGX管理机制SGX 内存管理机制EPC 页驱逐(eviction)SGX SDK SGX 应用现状及瓶颈问题SGX 应用安全防护技术TCB最小化TCB 安全风险分析最小化 TCB 的安全方案 对外接口最少化E…

【Axure高保真原型】3D柱状图_中继器版

今天和大家分享3D柱状图_中继器版的原型模板&#xff0c;图表在中继器表格里填写具体的数据&#xff0c;调整坐标系后&#xff0c;就可以根据表格数据自动生成对应高度的柱状图&#xff0c;鼠标移入时&#xff0c;可以查看对应圆柱体的数据……具体效果可以打开下方原型地址体验…

3.DApp-Metamask登录不了解决方法

题记 当遇到metamask登录不了&#xff0c;加载一直转圈圈&#xff0c;可以用以下的方法解决。 切换网络 切换成Linea Mainnet测试网络&#xff1a; 输入密码 输入登录密码登录metamask 重新选择自定义网络 选择自己本地自定义的网络&#xff1a; 后记 觉得有用可以收藏或点…

【源码分析】Java中的lambda表达式会生成内部类吗?是如何生成的?

文末附结论 分析 以该程序为例子 public class LambdaTest {public static void main(String[] args) {Thread t1 new Thread(() -> {System.out.println("asdwerwerwe");});t1.start();System.out.println("end!!!");} }调用javap -c -p LambdaTest…

C/C++陷阱——临时变量的产生和特性

C/C陷阱——临时变量的产生和特性 在学习C常引用时&#xff0c;有这样一段代码引起了我的注意&#xff1a; int a 1; double& b a;当我编译这段代码时&#xff0c;竟然报错了&#xff1a; 按理来说&#xff0c;初始化引用时不能涉及权限的放大&#xff08;如用const in…

黑群晖自动调整cpu模式

DS918 黑群晖好像是不支持cpu动态频率&#xff0c;导致cpu一直在最高频率运行&#xff0c;导致功耗比较高&#xff0c;但是某些版本的系统不支持设置为自动根据cpu负载动态调整频率&#xff0c;自己写了个脚本&#xff0c;支持自动根据cpu使用率调整cpu模式 脚本下载链接如下 …

朴实无华的三天每日一题

leetcode八分钟补完三天的每日一题哈哈哈哈 主打一个求同存异 import java.util.Arrays;class Solution {public int singleNumber(int[] nums) {Arrays.sort(nums);int ans 0;for (int i 0; i < nums.length; ) {try {if (nums[i] nums[i 1]) {i 2;} else {ans nums…

讲解 CSS 过渡和动画 — transition/animation (很全面)

前言 由于用户越来越注重 Web应用 的使用体验&#xff0c;随之而来的是 Web应用 需要提供了更加完善的 Web 动画 效果来实现以平滑的状态贯穿于用户的整个使用过程中。现在&#xff0c;这已经是司空见惯了&#xff0c;用户潜意识是希望可以获得更快的反馈响应和更友好的用户界…

2023年全球新能源云母材料市场发展展望分析:储能云母市场规模快速增长[图]

云母作为电气设备的基础材料&#xff0c;下游应用领域涉及高温冶炼、电力等传统行业&#xff0c;并在近几年逐步扩展到新能源汽车、电化学储能等新兴行业。2022年&#xff0c;全球云母材料市场规模保持稳定增长至180.0亿元&#xff0c;期间年复合增长率约为13.2%。预计未来&…

React TreeSelect设置默认展开项的方法

需要实现TreeSelect组件的onTreeExpand、treeExpandedKeys方法。 代码样例如下&#xff1a; 1.TreeSelect标签部分 render() {const {codeselect} this.props;const {treeExpandedKeys} this.state ................<TreeSelectshowSearch{false}dropdownStyle{{ maxHei…

day06_面向对象基础

今日内容 1 复习 2 面向对象编程介绍 3 面向对象 类,属性,方法 ,创建对象,使用对象内存关系 一、复习 周一: jdk,配置环境变量,idea,HelloWorld 变量,基本数据类型 周二: 运算符,if,if-else 周三: if-elseif-elseif-else,循环(while,dowhile,for) 周四: 方法设计(参数,返回值),…

vue3学习(六)--- 插槽slot

文章目录 匿名插槽具名插槽作用域插槽渲染作用域 动态插槽 插槽就是&#xff1a;子组件中的提供给父组件使用的一个占位符&#xff0c;用<slot></slot> 表示&#xff0c;父组件可以在这个占位符中填充任何模板代码&#xff0c;如 HTML、组件等&#xff0c;填充的内…

C++项目实战——基于多设计模式下的同步异步日志系统-⑫-日志宏全局接口设计(代理模式)

文章目录 专栏导读日志宏&全局接口设计全局接口测试项目目录结构整理示例代码拓展示例代码 专栏导读 &#x1f338;作者简介&#xff1a;花想云 &#xff0c;在读本科生一枚&#xff0c;C/C领域新星创作者&#xff0c;新星计划导师&#xff0c;阿里云专家博主&#xff0c;C…

安全典型配置(三)使用ACL禁止特定用户上网案例

【微|信|公|众|号&#xff1a;厦门微思网络】 安全典型配置&#xff08;一&#xff09;使用ACL限制FTP访问权限案例_厦门微思网络的博客-CSDN博客本例中配置的本地用户登录密码方式为irreversible-cipher&#xff0c;表示对用户密码采用不可逆算法进行加密&#xff0c;非法用…

VulnHub lazysysadmin

一、信息收集 1.nmap扫描开发端口 开放了&#xff1a;22、80、445 访问80端口&#xff0c;没有发现什么有价值的信息 2.扫描共享文件 enum4linux--扫描共享文件 使用&#xff1a; enum4linux 192.168.103.182windows访问共享文件 \\192.168.103.182\文件夹名称信息收集&…

YOLO目标检测——抽烟吸烟数据集【含对应voc、coco和yolo三种格式标签】

实际项目应用&#xff1a;公共场所监管、健康风险评估、戒烟干预数据集说明&#xff1a;YOLO目标检测数据集&#xff0c;真实场景的高质量图片数据&#xff0c;数据场景丰富。使用lableimg标注软件标注&#xff0c;标注框质量高&#xff0c;含voc(xml)、coco(json)和yolo(txt)三…

mask-R-CNN

前言 代码 论文 # Mask-rcnn 算法在 torch vision 中有直接实现&#xff0c;可以直接引用使用在自己的工作中。 import torchvision model torchvision.models.detection.maskrcnn_resnet50_fpn(weightsMaskRCNN_ResNet50_FPN_Weights.DEFAULT)Mask R-CNN&#xff08;Mask R…

uni-app实现拍照功能

直接些这样的组件代码 <template><view><button click"takePhoto">拍照</button><image :src"photoUrl" v-if"photoUrl" mode"aspectFit"></image></view> </template><script&g…