本文共 2354 字,大约阅读时间需要 7 分钟。
xml 是可扩展标记语言,用于保存,传输结构化的数据;
xml规则:
至少有一个标记,不能有空标记,标记必须成对出现,区分大小写(HTML不区分大小写)。
标签的命名规则:以字母、下划线、冒号开头,后面跟字母、数字下划线、冒号、点、连字符。中间不能有空格,不能以XML开头。
注释和HTML的一样:<!-- -->
css注释:/**/
JS 注释:单行注释// 多行注释/**/
php 注释:单行:// 或者# 多行注释:/**/
sql语句注释: 单行-- 多行/**/
注释不能嵌套使用。
xml的注释不可以放在申明之前:<?xml version="1.0" encoding="UTF-8"?>
使用工具:Altovaxmlspy
===============数据的分类======
PCDATA(parse character data)-------可以解析的字符数据
CDATA------------------------------不解析<a>标签包含的数据,吧a标签当做数据,
<url> <![CDATA[ <a href=" " >个人主页</a> ]]></url>
==========CDATA中的字符串中不能出现 ]]>
===============实体,项目中预先定义的=======
"==========单引号
'----双引号
<----------------小于
>-------------------大于
&-------------------&
=============
=======================DTD ----document type define------------文档类型定义;
<!DOCTYPE 根 SYSTEM “引用的XML文档”>
<!ELEMENT movies (movie+)>----------movie最少出现一次
<!ELEMENT movie (title,actor+,rating*)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT actor(#PCDATA)>
<!ELEMENT rating(#PCDATA)>
+--------------大于等于1;
*---------------大于等于0;
?-------------等于0货等于1;
<!DOCTYPE movies SYSTEM "demo.xml">-------引用外部
内部定义----
<!DOCTYPE movies [
<!ELEMENT movies (movie+)>----------movie最少出现一次
<!ELEMENT movie (title,actor+,rating*)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT actor(#PCDATA)>
<!ELEMENT rating(#PCDATA)>
<!ELEMENT br EMPTY>-----表示br 是空标记
]>
==========ANY表示根下可以放任意子元素,根只能有一个
<!ELEMENT html (body)>
<!ELEMENT strong (#PCDATA)>
<!ELEMENT body (#PCDATA|stronng)*>
================自定义实体========
<!ENTITY bj "背景大学">------自定义实体bj
调用实体--------
=========================属性========
声明元素的时候,元素的数据类型是PCDATA,声明属性的时候,属性数据类型是CDATA;
先有元素,在有属性;
格式如下:
<!ATLIST 元素名称 属性名称数据类型 附加条件 >
<!ATLIST movie id CDATA #REQUIRED >------ #REQUIRED是附加条件,表示必填;#IMPLIED表示可填可不填。
注意:ID的值必须以字母开头,不能是纯数字;
==================参数实体(相当于变量)=============
参数实体就是在普通实体前加上%;
===========命名空间
DTD不支持命名空间;支持的数据类型很少;DTD不可扩展;
schema用来解决DTD的不足;
schema的注意事项:
1.如果一个元元素下有子元素或属性,必须把元素和属性放在复杂元素标记(complexType)下面;
2.如果是子元素,必须放在放在复杂数据类型下的序列标签中(sequeue);属性不能放在序列标签中;
=================PHP中使用XML===========
读取XML中元素的值
DOM文档类型结构:
文档对象模型:
节点的分类:元素节点,属性节点,值节点,注释节点,根节点(就是document文档);
======写入数据到XML===
=========读取XML中的值======
=====nodeType:
格式化输出:$doc->formatOutput=true;
忽略空格:$doc->preserveWhiteSpace=false;
======添加节点和属性==========
注意要用父节点去操作子节点;
==========删除======
===========XPATH============(所有语言通用)
=================simpleXML====(PHP专用,PHP5 以上才有)=====