XML基本内容学习笔记

2024-09-07 08:08
文章标签 xml 学习 笔记 内容 基本

本文主要是介绍XML基本内容学习笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

XML基本内容学习笔记

XML(eXtensible Markup Language,可扩展标记语言)多用于数据交换和数据存储的一种多用途文本格式语言。XML是由万维网作为SGML的一种代替品开发的。它的语法和HTML相似,不过XML是一种用于语言分析的语言,他并没有要求专门的标记符号、属性或条目。

<?xmlversion="1.0" encoding=GB2312 standalone=yes?>

<?xml-stylesheet type=text/xslhref=mystyle.xsl?>

<!--下面是一个联系人名单列表-->

<联系人列表>

     <联系人>

           <姓名>张三</姓名>

           <ID>001</ID>

     <公司>A公司</公司>

     <EMAIL> zhang@aaa.com</EMAIL>

     <电话>(010)62345678</电话>

     <地址>

  <街道>五街1234</街道>

  <城市>北京市</城市>

  <省份>北京</省份>

   </地址>

     </联系人>

</联系人列表>


上面的就是一个经典的XML文档。一个XML文档基本包含:XML声明、处理指令、注释、XML元素等等。



1、MXL的声明:

      通知处理软件这是一个XML文档,并通知XML的版本号、字符编码、是否为独立文档。

<?xmlversion=”版本号”  encoding=”编码”  standalone=”yes|no”?>

XML声明由“<?xml“开始,”?>”结束。XML的声明中必须要指明”version”的属性值,同时,声明中还有两个可选的属性,分别是”enconding“和”standalone”。

 

一个最简单的XML声明:

<?xml  version=”1.0”?>

一个完整的XML声明:

<?xml  version=”1.0” enconding=”GB2312”  standalone=”no”?>顺序千万不能弄错了。

 

版本属性(version):他必须在属性类表中排第一位,通常为1.0.

字符编码(enconding):常见的字符编码有:GB2312,BIG5,UTF—8.

独立文档属性(standalone):yes为没有,no表示有

 

2、处理指令:

处理指令(Process  Instruction,简称PI),其格式为:<?处理指示名  处理指示信息?>,如:

<?mxl –stylesheet  type=”text/xsl”  href=”mystyle xsl”?>该处理指令來指定与XML文件配套使用的样式单的类型及文件名。

 

3、注释:XML注释以<!--  开始,以 -->结束。注释不要在文档的第一行或标记中,不能嵌套注释。

 

4、元素:

1)、标记是”<”和”>”之间的文本。标记是以字母或下划线开始的字符串。”<  />”为结束标记。

2)、元素包括开始标记、结束标记和二者之间的所有内容。元素中还可以有子元素。形式:

<标记>数据</结束标记>。

空元素:<标记></标记>或 <标记 />

  <!--两个等价的XML元素-->

  <br></br>

  <br/> 


3)、属性:是一个元素的开始标记中的名称=值对。一个元素可以有多个属性。例如:

例:<greeting> Hello, World! </greeting>

例:<?xml version=“1.0” encoding=“gb2312” ?>

<地址>
            <街道>前进大街2699号</街道>
            <城市 邮编=“130012”>长春</城市>
            <省份>吉林</省份>

  </地址>


4)根元素:XML文档必须包含在一个单一元素中,这个单一元素称为根元素。

示例1:正确的XML示例:

<?xmlversion="1.0"?>

  <!--A well-formed document -->

<greeting>Hello, World! </greeting>

示例2:错误的XML示例

<?xmlversion="1.0"?>

  <!--An invalid document -->

  <greeting>Hello, World! </greeting>

  <greeting>Hola,el Mundo!</greeting> 



5)XML元素不能交叉重叠:子元素的开始标记必须在父元素开始标记之后,子元素的结束标记必须在父元素的结束标记之前。

<!--错误的XML-->

  <p>

  <b>I <i>really

  love</b> XML.

  </i>

  </p> 


<!--正确的XML-->

  <p>

  <b>I <i>really

  love</i></b>

  <i>XML.</i>

  </p>



6)、结束标记是必须的,不能省去。

<!--错误的XML -->

  <p>Yadayadayada...

  <p>Yadayadayada...

  <p>...


7)、XML严格区分大小写的。

在 HTML 中,<h1>和 <H1> 是相同的;但是在XML 中,它们是不同的。


8)、属性必须有用引号括起来的值,可以是双引号,也可以是是单引号,但是必须配对。


9)、特殊实体:<、>、&、’、”是XML的保留字,要在XML中使用这些字符,就必须使用如下的特殊实体:

特殊实体

保留字符

&it

&gt

&quot

&apos

&amp

&

 

10)、CDATA:在此标记下,所有的标记、XML的保留字都会被忽视,而被XML处理程序当成字符数据看待。CDATA形式:<![CDATA[文本内容]]>

 

11)实体:是XML中用来指代其他复杂结构的机制。

实体声明:实体的声明应该放在XML声明之后,XML根元素之前。这样一来,XML文件就变为下面的形式:

  <?xml version=“1.0”?>
<!DOCTYPE 文件根元素名 [ 实体声明部分]>
<文件根元素名>
   具体数据内容
</文件根元素名>


12)名称空间:解决命名重复性问题。

XML是一种元标记语言,允许用户定义自己的标记,因此,很可能产生名字重复的情况。为了解决这个问题,W3C在1999年1月颁布了名称空间(NameSpace)标准。

名称空间是用保留属性来声明。例子里的头一条语句中,以“xmlns:”为前缀的两个属性,就是名称空间的声明。

<联系人:联系人列表

    xmlns:联系人   ="http://jlu.edu.cn/联系人列表.dtd"

    xmlns:企业经理 ="http://jlu.edu.cn/企业经理.dtd">

其中,等号前的属性名部分定义了名称空间前缀,如“联系人”和“企业经理”。 等号后的属性值部分定义了名称空间名,如“http://jlu.edu.cn/企业经理.dtd”。名称空间前缀和名称空间名通过名称空间声明联系起来。特别需要指出的是,这个名称空间名并不是一个真实的地址,而只是一个修饰。例如:前述的http://jlu.edu.cn完全可以写作http://jlu.eee.cc虽然这里并没有jlu.eee.cc这个真实的地址。

名称空间声明有两种方式:直接定义方式和缺省定义方式:

直接定义 xmlns:名称空间前缀 = “名称空间名”

缺省定义 xmlns = “名称空间名”

在遵循名称空间规范的XML文档中,标记不能包含这样的两个属性:

(1)属性名完全相同,

(2)或属性的本地部分完全相同,并且其前缀被绑定到相同的名称空间名。

但是,属性中使用缺省名称空间与元素有一点小小的区别:缺省名称空间不直接应用到属性。



注意事项:

在编写XML文档时必须严格遵守XML的基本规定。这样的XML文档被称为格式良好的XML文档。格式良好的XML文档应该满足以下几个主要条件:

文档必须包含一个或多个元素;
文档中只存在一个根元素;
元素必须正确关闭;
元素间不得交叉重叠;
元素中的属性名不能重复;
属性值必须加引号。
以上的学习笔记是个人学习整理出来的XML的基本语法操作,如有错误之处,还望高手多多指点!










posted @ 2015-06-09 17:09 1点er执着 阅读( ...) 评论( ...) 编辑 收藏

这篇关于XML基本内容学习笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1144529

相关文章

Python ORM神器之SQLAlchemy基本使用完全指南

《PythonORM神器之SQLAlchemy基本使用完全指南》SQLAlchemy是Python主流ORM框架,通过对象化方式简化数据库操作,支持多数据库,提供引擎、会话、模型等核心组件,实现事务... 目录一、什么是SQLAlchemy?二、安装SQLAlchemy三、核心概念1. Engine(引擎)

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

C#高效实现Word文档内容查找与替换的6种方法

《C#高效实现Word文档内容查找与替换的6种方法》在日常文档处理工作中,尤其是面对大型Word文档时,手动查找、替换文本往往既耗时又容易出错,本文整理了C#查找与替换Word内容的6种方法,大家可以... 目录环境准备方法一:查找文本并替换为新文本方法二:使用正则表达式查找并替换文本方法三:将文本替换为图

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)

《MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)》本文给大家介绍MyBatis的xml中字符串类型判空与非字符串类型判空处理方式,本文给大家介绍的非常详细,对大家的学习或... 目录完整 Hutool 写法版本对比优化为什么status变成Long?为什么 price 没事?怎

Linux从文件中提取特定内容的实用技巧分享

《Linux从文件中提取特定内容的实用技巧分享》在日常数据处理和配置文件管理中,我们经常需要从大型文件中提取特定内容,本文介绍的提取特定行技术正是这些高级操作的基础,以提取含有1的简单需求为例,我们可... 目录引言1、方法一:使用 grep 命令1.1 grep 命令基础1.2 命令详解1.3 高级用法2

DNS查询的利器! linux的dig命令基本用法详解

《DNS查询的利器!linux的dig命令基本用法详解》dig命令可以查询各种类型DNS记录信息,下面我们将通过实际示例和dig命令常用参数来详细说明如何使用dig实用程序... dig(Domain Information Groper)是一款功能强大的 linux 命令行实用程序,通过查询名称服务器并输