热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用PHP与XML联手进行网站编程理论分析

本函数用来开释目前XML解析所应用的内存。参数parser为解析代码。若没有错误则返回true值,否则返回false值。

一、小序

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 值。


推荐阅读
  • 解决基于XML配置的MyBatis在Spring整合中出现“无效绑定语句(未找到):com.music.dao.MusicDao.findAll”问题的方法
    在将Spring与MyBatis进行整合时,作者遇到了“无效绑定语句(未找到):com.music.dao.MusicDao.findAll”的问题。该问题主要出现在使用XML文件配置DAO层的情况下,而注解方式配置则未出现类似问题。作者详细分析了两个配置文件之间的差异,并最终找到了解决方案。本文将详细介绍问题的原因及解决方法,帮助读者避免类似问题的发生。 ... [详细]
  • 通过自定义 `TextView`,实现了在用户点击或焦点变化时动态调整字体颜色的效果。该方法利用了 `ColorStateList` 和 `Selector` 资源文件,确保了界面交互的流畅性和视觉效果的提升。具体实现中,通过重写 `onTouchEvent` 和 `onFocusChanged` 方法,精确控制了颜色变化的时机和状态。此外,还对性能进行了优化,确保在高频率操作下依然保持高效响应。 ... [详细]
  • 自定义包裹组件的HTML标签:实现商品数量动态增减功能 [Keep Coding]
    在本文中,我们将探讨如何通过自定义包裹组件的HTML标签来实现商品数量的动态增减功能。具体来说,我们将详细介绍如何利用React或Vue等前端框架,结合JavaScript和CSS,实现这一功能。文章将涵盖从基础的HTML结构搭建到事件处理和状态管理的全过程,帮助开发者快速掌握实现方法。此外,我们还将提供一些最佳实践和常见问题的解决方案,以确保开发过程顺利进行。 ... [详细]
  • C#中实现高效UDP数据传输技术
    C#中实现高效UDP数据传输技术 ... [详细]
  • 深入解析 OpenCV 2 中 Mat 对象的类型、深度与步长属性
    在OpenCV 2中,`Mat`类作为核心组件,对于图像处理至关重要。本文将深入探讨`Mat`对象的类型、深度与步长属性,这些属性是理解和优化图像操作的基础。通过具体示例,我们将展示如何利用这些属性实现高效的图像缩小功能。此外,还将讨论这些属性在实际应用中的重要性和常见误区,帮助读者更好地掌握`Mat`类的使用方法。 ... [详细]
  • 通过优化模板消息机制,本研究提出了一种高效的信息化推送方案。该方案利用获取的访问令牌(access token)和指定的模板ID,实现了精准且快速的信息推送,显著提升了用户体验和信息传递效率。具体实现中,通过调用相关API接口,确保了消息的准确性和及时性,为用户提供更加便捷的服务。 ... [详细]
  • PHP中元素的计量单位是什么? ... [详细]
  • 在ASP.NET MVC项目中,通过实战解决了Ajax请求500错误及多表数据查询的问题。具体而言,将页面分为两个部分,用户点击右侧导航栏时,通过Ajax请求动态加载数据,并在右侧显示相应的页面内容。最初尝试使用Partial Action方法,但遇到了500错误。通过详细排查和调试,最终成功解决了这一问题,并实现了预期功能。此外,还优化了多表数据查询的性能,确保系统的高效运行。 ... [详细]
  • 尽管许多人认为跑步是一项简单的运动,但实际上它涉及诸多专业知识。不正确的跑步方式不仅会降低锻炼效果,还可能引发伤害。例如,穿着不合脚或过于陈旧的跑鞋,会导致足部支撑不足,增加受伤风险。此外,跑步姿势不当、热身不足、过度训练等问题也同样值得关注。本文将详细介绍七大常见跑步误区,并提供专业的改进建议,帮助跑者避免这些问题,提高运动效率和安全性。 ... [详细]
  • 在第六章中,我们将深入探讨MySQL中的多表查询技术,包括联结查询和子查询。联结查询通过将两个或多个表进行连接,基于连接条件生成结果集。常见的联结类型有内联结、外联结和全外联结。交叉联结(CROSS JOIN)虽然使用较少,但其原理是生成所有可能的组合,类似于笛卡尔积的概念。此外,子查询则是在一个查询语句中嵌套另一个查询,用于获取更复杂的数据集。本章将通过实例详细讲解这些查询方法的应用和优化技巧。 ... [详细]
  • 本文深入探讨了 iOS 开发中 `int`、`NSInteger`、`NSUInteger` 和 `NSNumber` 的应用与区别。首先,我们将详细介绍 `NSNumber` 类型,该类用于封装基本数据类型,如整数、浮点数等,使其能够在 Objective-C 的集合类中使用。通过分析这些类型的特性和应用场景,帮助开发者更好地理解和选择合适的数据类型,提高代码的健壮性和可维护性。苹果官方文档提供了更多详细信息,可供进一步参考。 ... [详细]
  • 在 HihoCoder 1505 中,题目要求从给定的 n 个数中选取两对数,使这两对数的和相等。如果直接对所有可能的组合进行遍历,时间复杂度将达到 O(n^4),因此需要考虑优化选择过程。通过使用哈希表或其他高效的数据结构,可以显著降低时间复杂度,从而提高算法的效率。具体实现中,可以通过预处理和存储中间结果来减少重复计算,进一步提升性能。 ... [详细]
  • 在探讨如何高效处理大规模数据报表的分页展示之前,首先需要明确导致报表加载缓慢的主要原因。通常情况下,这主要是由于两个方面:一是查询条件过于宽泛,使得数据库返回的结果集包含数百万甚至更多的记录;二是前端渲染性能不足,无法高效处理大量数据。为了优化这一过程,可以从以下几个方面入手:优化查询条件,减少不必要的数据返回;采用分页查询技术,每次仅加载所需的数据;利用缓存机制,减少对数据库的频繁访问;提升前端渲染效率,使用虚拟滚动等技术提高用户体验。 ... [详细]
  • 本文深入探讨了原型模式在软件设计中的应用与实现。原型模式通过使用已有的实例作为原型来创建新对象,而不是直接通过类实例化。这种方式不仅简化了对象的创建过程,还提高了系统的灵活性和效率。具体来说,原型模式涉及一个支持克隆功能的接口或基类,子类通过实现该接口来提供具体的克隆方法,从而实现对象的快速复制。此外,文章还详细分析了原型模式的优缺点及其在实际项目中的应用场景,为开发者提供了实用的指导和建议。 ... [详细]
  • 本文详细探讨了Java集合框架的使用方法及其性能特点。首先,通过关系图展示了集合接口之间的层次结构,如`Collection`接口作为对象集合的基础,其下分为`List`、`Set`和`Queue`等子接口。其中,`List`接口支持按插入顺序保存元素且允许重复,而`Set`接口则确保元素唯一性。此外,文章还深入分析了不同集合类在实际应用中的性能表现,为开发者选择合适的集合类型提供了参考依据。 ... [详细]
author-avatar
小海豚1977
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有