XML 指可扩展标记语言(EXtensible Markup Language)
主要功能:数据传输
目的:传输和存储数据,而不是展示数据
XML 标签没有被预定义。需要自行定义标签,但是在写标签名的时候一定要有含义
XML和HTML的区别:
1.html标签不能自定义,xml标签必须自定义
2.html语法要求不严格,xml语法要求严格,必须是成对标签
3.xml用来传输存储数据,html用来展示数据
语法规则:
1.头声明(可有可无)<?xml version="1.0" encoding="utf-8" ?>(version版本号,encoding文件编码)
2.xml语法要求严格,必须是成对标签
3.XML 必须包含根元素,它是所有其他元素的父元素
用户
4.标签名区分大小写(对大小写敏感)
5.标签不能交叉
6.xml注释和html注释方法相同
7.特殊字符使用实体转义
属性:
属性值必须被引号包围,不过单引号和双引号均可使用。比如一个人的性别,person 元素可以这样写:
或者这样也可以:
如果属性值本身包含双引号,可以使用单引号,就像这个实例:
或者可以使用字符实体:
命名规则:数字字母下划线,数字不能开头。
属性就是表示标签自身的一些额外信息;
CDATA:
CDATA 部分中的所有内容都会被解析器忽略。
CDATA 部分由 “<![CDATA[**" 开始,由 "**]]>” 结束:
<![CDATA[ function matchwo(a,b) { if (a < b && a < 0) then { return 1; } else { return 0; } } ]]>注意:特殊字符较少时,使用实体替换,较多时使用CDATA,CDATA必须大写;
PHP解析XML:
$x=simmplexml_load_file(1.xml);
获取xml文件中的数据
$s=file_get_contents(地址);
simplexml_load_string(字符串$s);//参数接收xml内容,而不是文件地址
simmplexml_load_file(地址);//参数接收xml文件地址
步骤:
1.读取xml文档到内存
2.形成DOM树
3.由DOM树生成对象并返回
根节点不解析
验证 XML 文档
合法的 XML 文档是"形式良好"的 XML 文档,这也符合文档类型定义(DTD)的规则:
<?xml version="1.0" encoding="ISO-8859-1"?> Tove Jani Reminder Don't forget me this weekend! 在上面的实例中,DOCTYPE 声明是对外部 DTD 文件的引用。下面的段落展示了这个文件的内容。XML DTD
DTD 的目的是定义 XML 文档的结构。它使用一系列合法的元素来定义文档结构:
<!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>]>
DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块。
(1)可以理解为一个模板,这个模板里定义了用户自己创建的根元素以及对应的子元素和根元素的合法子元素和属性
(2)而“文档元素”则必须以我们的DTD为模板,来对XML的元素的内容进行相应规范化。
DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。
DTD声明
内部声明:DTD被包含在XML源文件中,应当使用下面的语法包装在一个DOCTYPE声明中
语法: < !DOCTYPE 根元素[元素声明] >
外部声明:假如DTD位于XML源文件的外部,应当使用下面的语法封装在一个DOCTYPE定义中
语法:< !DOCTYPE 根元素 SYSTEM “文件名”>