0

0

xml编程(一)-xml语法

黄舟

黄舟

发布时间:2016-12-22 10:50:30

|

2229人浏览过

|

来源于php中文网

原创

xml编程

Xml语法

DTD约束

PHP DOM

SIMPLEXML

一、 简介

1、 发展

gml  通用标记语言 1969年 软件如果想实现高度的移植性,必须要有一个统一的标准

sgml  标准通用标记语言1985年

 html   超文本标记语言1993年,解决不同平台,不同浏览器访问同一网页

 xml可扩展标记语言 1998年

2、 关于xml的定义

extensible markup language ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 

3、 xml和html的不同

html:显示数据   

 

xml:保存数据

html标签不能自定义,从标签上不能达到“见词知意”的目的

html:

武松

xml:武松表格>

html将数据与格式绑定在一起

商品名

不同浏览器解html不同:IE,火狐。

 html语法要求不严格

 等等

4、 xml的主要用途

 程序之间的相互通讯

作为程序的配置文件

存储数据

规范数据格式

二、 xml快速入门

描述一个人的信息

 


   
       张三
       30
   


三、 xml语法

xml文件的构成

文档声明

元素

元素属性

注释

CDATA区

特殊字符

处理指令

文档声明:

需要先使用文档声明来声明XML文档

 最简单的语法:

encoding 

指定编码格式

 standalone

当前文档是否独立  yes/no

元素:

一个标签分为起始和结束标签(不能省略)

错误:

内容

正确:

一个标签中可以嵌套若干子标签,但所有标签必须合理的嵌套,不允许有交叉嵌套

错误:

正确:

一个XML文档必须有且仅有一个根标签,其他标签都是这个根标签的子标签

元素-命名:

元素(标签)的名称可以包含字母、数字、减号、下划线和英文句点

严格区分大小写;

表示两个标签

只能以字母或下划线开头;

A123

_123

错误:12a

不能以xml(或XML、Xml等)开头

错误:xmlabc

名称字符之间不能有空格或制表符;

错误:;正确:

名称字符之间不能使用冒号:错误:

元素属性

一个元素可以有多个属性

属性值一定要用引号(单引号或双引号)引起来

属性名称的命名规范与元素的命名规范相同

元素中的属性是不允许重复的

错误 

 标签属性所代表的信息也可以被改成用子元素的形式来描述

 可以改成

100

注释

XML声明之前不能有注释

注释不能嵌套,

错误>

CDATA区:

CDATA:Character Data    字符数据

作用:把标签当做普通文本内容

语法:

特殊字符:

对于一些特殊字符,若要在元素主体内容中显示,必须进行转义。

xml教程

Wordware
Wordware

Wordware是一个自然语言编程工具,使任何人都可以开发、迭代和部署有用的AI应用程序。

下载

xml教程

处理指令:

作用:用来指挥软件如何解析XML文档。

语法:必须以“”作为开头,以“?>”作为结尾。

常用处理指令:

xml指令

xml-stylesheet指令

#p#xml教程-xml的dtd约束#e#

DTD约束

一、 什么是约束

XML技术中,可以编写一个文档来约束一个XML的书写规范,这个文档称之为约束,Xml约束文档

约束文档定义了在XML中允许出现的元素名称、属性及元素出现的顺序等等。

格式良好的XML:遵循XML语法的XML

有效的XML:遵循约束文档的XML

遵循xml语法的文档称之为合法的

遵循约束文档的xml文档称之为合理的

合法的xml不一定是合理的

合理的一定是合法的

二、 常见的约束

XML DTD

XDR

SOX

XML Schema

三、 什么是dtd

l Document Type Definition 文档类型定义

约束XML的书写规范

四、 dtd存放的位置

文件中:可以将dtd约束放在当前xml文件中

外部文件:也可以将约束放到一个外部的.dtd的文档中

五、 dtd快速入门

六、 如何检测我们xml文档是否符合dtd约束???

程序

ActiveXObject("Microsoft.XMLDOM")  //实例化xmldom对象

doc.validateOnParse //是否开启检验

doc.async //是否异步

doc.load() //加载

doc.parseError.reason //错误信息

doc.parseError.line //错误行号

软件 iexmltls  这个小插件可以在ie下检测你写的文档是否是有效的xml'文档。

七、 如何引用外部dtd

DOCTYPE声明:

nbsp;根元素 SYSTEM “DTD文档路径”> //外部引入dtd文档

xml教程

八、 dtd语法

 定义元素

定义属性

定义实体

1、 定义元素

语法:

使用规则:

 (#PCDATA) :文本数据

 EMPTY :空

 ANY :任意

 (子元素) :只出现一次

 (子元素1,子元素2,……) :顺序指定子元素

(子元素+) :至少出现一次

(子元素*) :子元素可以出现任意次数

 (子元素?) :子元素出现0次或1次

(子元素1|子元素2) :任选其一

2、 定义属性

语法:

 

属性类型:

CDATA :文本

 (en1|en2|……) :值任选其一

ID :值为唯一 

默认值:

#REQUIRED 非空   使用这个修饰的属性必须要写

 #IMPLIED 可选   可写可不写

 #FIXED 固定值   可以不指定,如果指定,只能使用这个值

值 默认值   如果指定值,则以指定值为标准,如果没有指定,则使用默认值

3、 定义实体

 定义实体就是为一段内容指定一个名称,使用时通过这个名称就可以引用其所代表的内容

 内部实体

外部实体

定义内部实体

定义语法:

 

引用语法:

&实体名;

定义外部实体

定义语法:

 

引用语法:

&实体名

xml教程

 以上就是xml编程(一)-xml语法的内容,更多相关内容请关注PHP中文网(www.php.cn)!

相关专题

更多
Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

37

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

37

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

16

2026.01.13

PHP缓存策略教程大全
PHP缓存策略教程大全

本专题整合了PHP缓存相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.13

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

交互式图表和动态图表教程汇总
交互式图表和动态图表教程汇总

本专题整合了交互式图表和动态图表的相关内容,阅读专题下面的文章了解更多详细内容。

45

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

9

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 0.7万人学习

Rust 教程
Rust 教程

共28课时 | 4.4万人学习

Kotlin 教程
Kotlin 教程

共23课时 | 2.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号