作者:小海豚1977 | 来源:互联网 | 2014-01-19 13:11
一、小序
HTML简略易学又通用,一般的PHP程序就是嵌进在HTML语言之中实现的。但是随着Web越来越广泛的利用,HTML的弱点也越来越明显了。XML的呈现,补充了这些不足,它供给了一个能够处理互联网上全部数据的通用方法。
二、HTML的局限性分析
1、 HTML的可扩大性差。固然作为一般的利用,HTML应经够用了,但是在处理数学和化学等符号时,HTML有明显的毛病,而且它无法进行扩大,这样使它的发展收到了极大的限制。
2、 链路丧失后不能主动改正。由于Web页面的URL地址经常转变,而在转变URL地址时必需手工修正这些信息,否则就会碰到“404URL地址未找到”的信息,这大大加重了Web页面的保护工作量。
3、 数据搜索的时间长。由于HTML重要用来对网页的显示进行把持,导致了同一个数据在不同的网页中有不同的存储格局,这样在进行数据搜索时就无法快速找到所需的材料。
4、 HTML对双字节或者多国文字的支撑不够。例如中文信息页面在不同的平台下会呈现无法显示等标题。
正是由于这些毛病,人们研究了能够代替HTML的Web页面制作语言。其中已经投进应用的有:可扩大标记语言XML、层叠样式表(CSS)以及动态HTML(DHTML)等。
三、XML的组成
这里简要列举几种重要的XML技巧:
1、 DTD(文档类型声明)
DTD的重要功效是定义XML的内容模式;限制XML标记的数据范畴;定义属性的数据类型。但由于它不是用XML编写的,因此扩大性比拟差;而且只供给了有限的几种数据类型,因此它的作用是有限的。
2、 XML Schema
XML Schema的作用和DTD类似。但不同的是,Schema文件所描写的是引用它的XML文件中的元素和属性的具体类型。另外,由于它是由XML编写的,Schema和DTD相比拟还有以下长处:
·XML Schema内容模型是开放的,可以随便扩充,而DTD无法解析扩充的内容。
·DTD只能把内容类型定义为一个字符串,而XML Schema答应把内容类型定义为整型、浮点型、布尔型或者很多其它的简略数据类型。
·XML Schema利用Namespaces将文档中特别的节点与Schema相接洽,一个XML文件可以有多个对应的Schema,而一个XML文件只能有一个DTD。
3、 XLink
作为一种Web语言,XML的链接才能是非常重要的。XML的链接和定址机制包含XLink、XPath和XPointer。XLink供给功效强盛的链接方法,可以在文档之间建立单向或多向的复杂联结关系,还有注释链接、概要链接、扩大链接集等多种链接功效。XPath在XSLT和XPointer中应用,支撑在XML文档中相对于节点和节点集的定位。XPointer在XPath的基础上供给对XML文档的内容的内部结构(如一个字符串或者选择的一个段落)的定位。XML的链接才能比HTML有了很大的加强。
4、 CSS与XSL
XML的一大特点就是内容与格局分别,也就是说,XML文档中并不包含如何显示/表现文档的信息。CSS与XSL(XML Style Language)解决了XML文档的显示标题。
CSS(层叠样式表)也可以用在HTML和XML中。XSL完整应用XML的语法,功效比CSS要强盛得多。
5、 DOM
文档对象模型(DOM)是一个与平台、语言无关的程序接口,它供给了动态拜访和更新文档的内容、结构与作风的手段。可以对文当作进一步的处理,并将处理的成果更新到表现页面。
DOM的目标就是为XML和HTML定义一个尺度的编程接口,它包含核心、HTML和XML三部分。DOM的核心部分建立了一套底层的对象集,它们可以表现任何结构化的文档。HTML和XML供给了高层的接口,可以作为更方便的文档视图。DOM规范由对象和方法组成。程序员应用它们可以更轻易地对特定类型的文档进行拜访和把持。
6、 Namespaces
Namespaces是用URL加以差别的、在XML文件的元素和属性中呈现的所著名称的聚集。在XML中,用户可以自己定义标记和元素。因此,假如把多个XML文件合并为一个,就很可能呈现冲突。Namespaces则解决了这个标题。
四、PHP对XML的支撑
PHP对XML供给了的强盛的支撑。它应用了一个XML的“解析器”,并且为了支撑这个解析器,它供给了20(PHP4)个XML的解析函数。下面是几个最常用的PHP解析函数。
1. xml_parse
boolean xml_parse(int parser, string data, int [isFinal]);
本函数用来解析 XML 格局的文件材料。参数 parser 为解析代码。参数 data 为解析的材料区块 (chunk)。参数 isFinal 可省略,若设为 true 则系统会主动送出最后的材料部分 (piece) 给 data 参数。若无错误则返回 true 值。
2. xml_parser_create
int xml_parser_create(string [encoding]);
本函数用来初始化一个新的 XML 解析器。参数 encoding 可省略,为 XML 应用的字符集,默认值为 ISO-8859-1,其它尚有 US-ASCII、UTF-8 二种。成功则返回 parser 代码供其它函数应用,失败则返回 false 值。
3. xml_set_element_handler
boolean xml_set_element_handler(int parser, string startElementHandler, string endElementHandler);
本函数配置元素的标头供 xml_parse() 函数应用。参数 parser 为解析代码。参数 startElementHandler 及 endElementHandler 分辨为元素开端与结束的标头,其中的 startElementHandler 必需包含解析代码、名称、与属性,而 endElementHandler 参数包含懂得析代码及名称二个参数。若无错误则返回 true 值。
4. xml_set_character_data_handler
boolean xml_set_character_data_handler(int parser, string handler);
本函数配置字符材料的标头。参数 parser 为解析代码。参数 handler 包含解析代码及材料字符串等二个元素。若无错误则返回 true 值。
5. xml_get_error_code
int xml_get_error_code(int parser);
本函数可取得 XML 在处理时的错误代码。参数 parser 为解析代码。若 parser 有错则返回 false 值,否则就返回错误代码 (如 XML_ERROR_BINARY_ENTITY_REF .... 等等)。
6. xml_error_string
string xml_error_string(int code);
本函数可取得 XML 在处理时的错误代码。参数 code 为解析错误代码。若无错误返回值为代码的文字描写字符串。
7. xml_get_current_line_number
int xml_get_current_line_number(int parser);
本函数用来取得目前 XML 解析所正在处理的行号。参数 parser 为解析代码。若 parser 有错则返回 false 值,若无错误则返回行号数字。
8. xml_parser_free
boolean xml_parser_free(int parser);
本函数用来开释目前 XML 解析所应用的内存。参数 parser 为解析代码。若没有错误则返回 true 值,否则返回 false 值。