跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

使用 XSLT、SimpleXML 和 PHP 5 分离内容和表示

利用 PHP XSL 和 SimpleXML 模块

Jake Miles, 自由撰稿人和开发人员, Twistage Inc.
Jacob Miles 的照片
Jake Miles 是 Twistage 公司的高级技术联络,Twistage 是一个年轻的公司,为商业公司提供完备的视频 Web 解决方案。他在语言和软件技术方面很有经验,是一名具有 10 年经验的专业开发人员,并且从 10 岁起他就一直是一个充满求知欲的学生。他还自愿参与教学工作,并且他相信如果老师讲得足够明白的话,没有人是教不会的。

简介:  多年以来,开发人员设计了许多策略和框架以简化业务逻辑和表示逻辑的分离。在这篇教程中,您会探究两种从表示逻辑中分离数据和业务逻辑的解决方案:一种通过 PHP 5 中的 XSL 模块使用 XSLT,另外一种使用 PHP 5 中的 SimpleXML 模块。为说明这两种解决方案,以个人简历的 Web 页面为例,该页面存储为 XML 文件。

发布日期:  2008 年 11 月 24 日
级别: 中级

访问情况 : 4254 次浏览
评论: 

开始之前

这篇教程用于 Web 应用程序开发人员从表示逻辑中分离数据和业务逻辑。一般来说,要求读者具备 PHP 经验、XML 知识并且熟悉 XSLT 。

关于本教程

许多 Web 应用程序接收用户数据,将其转换为数据库中存储的表,然后再把这些数据库中的数据转换为 Web 页面。要使用数据创建 Web 页面,一种方法是创建一个 PHP 页面作为 Web 页面的模板,其中包含所有的数据库查询和其他必须的逻辑,这些逻辑将数据重构到页面可用的表单中。但是,这种方法的问题是将所有关注点混合在一起:

  • 第一个关注点是 Web 页面设计人员,创建页面的布局
  • 另一个关注点是从数据库中提取数据的开发人员
  • 第三个关注点是重构数据的中间人员,使数据在页面中更容易使用

关注点分离指把代码提取到不同的层:

  • 处理数据库层
  • 操作数据层
  • 创建用户界面的表示层

这篇教程将展示关注点分离的两个实现。

常用缩写词

  • CSS:层叠样式表(Cascading stylesheet)
  • HTML:超文本标记语言(Hypertext Markup Language)
  • PHP:PHP 超文本预处理器(PHP Hypertext Preprocessor)
  • XML:可扩展标识语言(Extensible Markup Language)
  • XSD:XML 模式定义(XML Schema Definition)
  • XSL:可扩展样式表语言(Extensible Stylesheet Language)
  • XSLT:XSL 转换(XSL Transformations)

关注点分离是实现具有良好结构的代码的基础,它封装了责任和依赖关系。为此,多年以来,开发人员设计了许多战略和框架以促进甚至执行业务逻辑和表示逻辑的分离,这两种逻辑通常是各自独立的。 XSLT 样式表序列使分离非常清晰,因为可以将数据转换过程进行分解,从持久化形式转换为可视化表示的过程可分为几个独立的阶段,通过一个样式表转换 XML,然后再使用下一个样式表操作。然而,大多数使用过程语言的程序员并不是以 XSLT 语法和方法、声明范例作为标准的。 PHP 中的 SimpleXML 模块是对 XSLT 的过程响应,可以将 XML 文档作为一个标准 PHP 对象进行遍历。

在这篇教程中,将会实现存储为 XML 文件的个人简历 Web 页面,并探究两种从表示逻辑中分离数据和业务逻辑的解决方案:

  • 一种方案是通过 PHP 5 中的 XSL 模块使用 XSLT
  • 另一种方案是使用 PHP 5 中的 SimpleXML 模块

首先,创建一个小型驱动脚本,接下来,按顺序实现三个 XSLT 样式表来实现内容和表示的分离。最后,在 PHP 中使用 SimpleXML 模块实现相同的转换。尽管两种技术(XSLT 和 PHP)的基本机制是完全不同的,但两种实现的结果代码却有非常相似的结构。

尽管目前大多数的数据被存储在关系数据库中,但是,对于那些不经常改变、而且不需要锁定记录的小型数据集,例如个人简历,XML 是最理想的存储格式,便于添加数据。在这篇教程中,您将通过把 XML 简历文档显示为 HTML Web 页面来了解 XSLT 和 SimpleXML 。


先决条件

在这篇教程中,需要下列工具:

  • 本教程使用PHP 版本 5.2.6
  • SimpleXML 包含于 PHP 5.0 及后期所有版本中,且默认情况下被设置为启用。
  • PHP 5 默认包含 XSL 扩展。为使用 XSL 扩展,可以在配置行添加参数--with-xsl[=DIR]。要获得有关安装和配置 XSL 扩展的更多信息,参阅http://us.php.net/manual/en/xsl.setup.php
  • XML 编辑器。

1 页,共 8 | 后一页

评论



static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=XML, Open source
ArticleID=354346
TutorialTitle=使用 XSLT、SimpleXML 和 PHP 5 分离内容和表示
publish-date=11242008
author1-email=jacob.miles@gmail.com
author1-email-cc=dwxed@us.ibm.com

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。