xml的语法

<!--
    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.rhkb.cn/news/159700.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

centos 7.9离线安装wget

1.下载安装包 登录到wget官网上下载最新的wget的rpm安装包到本地 http://mirrors.163.com/centos/7/os/x86_64/Packages/ 2.上传安装包到服务器 3.安装 rpm -ivh wget-1.14-18.el7_6.1.x86_64.rpm 4.查看版本 wget -V

集合的进阶

不可变集合 创建不可变的集合 在创建了之后集合的长度内容都不可以变化 静态集合的创建在list &#xff0c;set &#xff0c;map接口当中都可以获取不可变集合 方法名称说明static list of(E …elements)创建一个具有指定元素集合list集合对象staticlist of(E…elements)创…

智慧港口与无人机巡逻技术:走进未来的海上交通枢纽

在21世纪&#xff0c;随着全球贸易的日益繁荣&#xff0c;港口作为连接世界各地的重要交通枢纽显得尤为重要。为了提高港口的效率和安全性&#xff0c;智慧港口和无人机巡逻技术成为了最前沿的选择。其中&#xff0c;复亚智能无人机技术在智慧港口的建设和日常运营中扮演了至关…

6、docker下mysql修改配置文件

1、查看mysql镜像 如果没有mysql镜像则下载 docker images |grep mysql 2、查看mysql容器 docker ps |grep mysql 如果没有显示mysql容器信息&#xff0c;则创建 3、创建容器 docker run -it --name mysql-test -e MYSQL_ROOT_PASSWORDroot -p 3306:3306 -d f9653 4、在…

消息队列缓存,以蓝牙消息服务为例

前言 消息队列缓存&#xff0c;支持阻塞、非阻塞模式&#xff1b;支持协议、非协议模式 可自定义消息结构体数据内容 使用者只需设置一些宏定义、调用相应接口即可 这里我用蓝牙消息服务举例 有纰漏请指出&#xff0c;转载请说明。 学习交流请发邮件 1280253714qq.com 原…

Go语言入门心法(一): 基础语法

Go语言入门心法(一) Go语言入门心法(二): 结构体 Go语言入门心法(三): 接口 Go语言入门心法(四): 异常体系 Go语言入门心法(五): 函数 一: go语言中变量认知 go语言中变量的定义: &#xff08;要想飞|先会走&#xff09;||&#xff08;翻身仗|抹遗憾 &#xff09; |&…

基于IDEA集成环境---Nacos安装

Nacos服务器是独立安装部署的&#xff0c;因此我们需要下载最新的Nacos服务端程序&#xff0c;下载地址&#xff1a;https://github.com/alibaba/nacos。 将文件进行解压&#xff0c;得到以下内容&#xff1a; 直接将其拖入到项目文件夹下&#xff0c;便于我们一会在IDEA内部…

mysql case when 不命中缓存

case when 在sql 中非常方便数据不同维度统计&#xff0c;但是也会出现mysql 索引不命中问题&#xff0c;当多个case 出现时&#xff0c;需要提取出来到where里面优化 优化后 SELECT date(RecordTime) AS date, count( DISTINCT CASE WHEN Param 1 …

什么是美体SDK?美摄美颜美体SDK对接开发指南

在当今的数字世界中&#xff0c;人们对自我表达和形象展示的需求越来越高。美体SDK应运而生&#xff0c;为用户提供了一种全新的美颜美体体验&#xff0c;让每一个人都能享受到个性化的美丽与自信。 一、美体SDK的特点 轻量级&#xff1a;美体SDK体积小巧&#xff0c;不会对用…

运用精益管理思想提升MES管理系统建设水平

随着制造业的不断发展&#xff0c;MES生产管理系统已经成为了企业生产过程中不可或缺的一部分。而在MES管理系统建设过程中&#xff0c;精益管理的思想也越来越受到重视。本文将探讨如何运用精益管理的思想&#xff0c;提高MES系统的建设水平&#xff0c;以更好地服务于企业的生…

Sanic​——Python函数变成API的神器

今天给大家介绍一个超好用的框架&#xff0c;迅速将Python函数变成API&#xff0c;它就是最近越来越火的异步Web框架Sanic。 1. Sanic简介 Sanic 是 Python3.7 Web 服务器和 Web 框架&#xff0c;旨在提高性能。它允许使用 Python3.5 中添加的async/await语法&#xff0c;这使…

1.Vue-在独立页面实现Vue的增删改查

题记 在独立页面实现Vue的增删改查&#xff0c;以下是具体的代码&#xff0c;和操作流程。 编写index.html页面 index.html文件如下&#xff1a; <!DOCTYPE html> <html> <head><title>Vue CRUD Example</title><!--在线导入vue文件-->&l…

Linux系统之ip命令的基本使用

Linux系统之ip命令的基本使用 一、ip命令介绍1.1 ip命令简介1.2 ip命令的由来1.3 ip命令的安装包 二、ip命令使用帮助2.1 ip命令的help帮助信息2.2 ip命令使用帮助 三、查看网络信息3.1 显示当前网络接口信息3.2 显示网络设备运行状态3.3 显示详细设备信息3.4 查看路由表3.5 查…

canvas画一个笑脸和画一个三角形

画一个笑脸主要用到的是画弧形的方法&#xff1a;arc&#xff0c;有五个参数&#xff1a;起始坐标&#xff0c;半径&#xff0c;弧形起始坐标&#xff0c;还有一个参数是顺时针还是逆时针。画的笑脸&#xff1a;虽然丑了点&#xff0c;但是学习了 代码&#xff1a; <!DOCTY…

【Docker 内核详解】namespace 资源隔离(四):Mount namespace Network namespace

【Docker 内核详解 - namespace 资源隔离】系列包含&#xff1a; namespace 资源隔离&#xff08;一&#xff09;&#xff1a;进行 namespace API 操作的 4 种方式namespace 资源隔离&#xff08;二&#xff09;&#xff1a;UTS namespace & IPC namespacenamespace 资源隔…

[23] T^3Bench: Benchmarking Current Progress in Text-to-3D Generation

3D生成蓬勃发展&#xff0c;主流方法通过事例比较和用户调查来评价方法好坏&#xff0c;缺少客观比较指标&#xff1b;本文提出Bench&#xff0c;首次综合比较了不同生成方法&#xff1b;具体来说&#xff0c;本文设计了质量评估&#xff08;Quality Assessment&#xff09;和对…

MyBatisPlus的学习项目页面

MyBatisPlus通过扫描实体类&#xff0c;并基于反射获取实体类信息作为数据库表信息 类名驼峰转下划线作为表名 名为id的字段作为主键 变量名驼峰转下划线作为表的字段名 常见注解 TableName&#xff1a;用来指定表名 Tableld&#xff1a;用来指定表中的主键字段信息 Tabl…

攻防世界题目练习——Web引导模式(三)(持续更新)

题目目录 1. mfw2.3.4.5. 1. mfw 进去看到网页和页面内容如下&#xff1a; 看到url的参数 ?pageabout &#xff0c;我以为是文件包含什么的&#xff0c;反复试了几次&#xff0c;想用 …/…/…/…/etc/passwd &#xff0c;但是发现.似乎被过滤了&#xff0c;实在不知道怎么做…

SpringCloud学习笔记-Nacos服务分级存储模型

Nacos服务分级存储模型 一级是服务&#xff0c;例如userservice二级是集群&#xff0c;例如杭州或上海三级是实例&#xff0c;例如杭州机房的某台部署了userservice的服务器 微服务互相访问时&#xff0c;应该尽可能访问同集群实例&#xff0c;因为本地访问速度更快。当本集…

Pygame中将鼠标形状设置为图片2-1

在Pygame中利用Sprite类的派生类将鼠标形状设置为图片&#xff0c;其原理就是将Sprite类的派生类对应图片的位置设置为鼠标的当前位置即可。其效果如图1所示。 图1 将鼠标设置为图片 从图1可以看出&#xff0c;鼠标的形状变为红色的&#xff0c;该红色的随着鼠标的移动而移动&…