WEB开发网
开发学院WEB开发PHP 面向PHP开发人员的XML 第3部分: 读、操纵和写XML的... 阅读

面向PHP开发人员的XML 第3部分: 读、操纵和写XML的高级技术

 2008-11-19 22:26:04 来源:WEB开发网   
核心提示: 使用 XSL 操纵 xml(标准化越来越近了)可扩展样式表语言(XSL)是一种用于操纵 xml(标准化越来越近了) 文档的功能性 xml(标准化越来越近了) 语言,根据样式表定义(类似于 CSS 实现规则的方式),面向PHP开发人员的XML 第3部分: 读、操纵和写XML的高级技术(5),使用 XSL 可以将 xml

使用 XSL 操纵 xml(标准化越来越近了)

可扩展样式表语言(XSL)是一种用于操纵 xml(标准化越来越近了) 文档的功能性 xml(标准化越来越近了) 语言。根据样式表定义(类似于 CSS 实现规则的方式),使用 XSL 可以将 xml(标准化越来越近了) 文档转换成重新定义的 xml(标准化越来越近了) 文档、XHTML 文档、HTML 文档或者文本文档。PHP5 的 W3C 标准实现支持与 DOM 和 XPath 之间的互操作。可扩展样式表语言转换(XSLT)是一种基于 libxml(标准化越来越近了)2 的 xml(标准化越来越近了) 扩展,它的样式表也是 xml(标准化越来越近了) 文档。XSLT 将 xml(标准化越来越近了) 源树转换成 xml(标准化越来越近了) 或者 xml(标准化越来越近了) 类型的结果树。这些转换将样式表中指定的一系列规则应用于 xml(标准化越来越近了) 数据。XSLT 可以向输出文件中添加或者从其中删除元素或属性。允许开发人员排序或者重新排列元素,决定隐藏或者显示某些元素。不同的样式表可让 xml(标准化越来越近了) 提供不同媒介的适当显示,比如屏幕显示和打印显示。XSLT 使用 XPath 在原始 xml(标准化越来越近了) 文档中导航。XSLT 转换模型通常涉及到一个 xml(标准化越来越近了) 源文件、包含一个或多个处理模板的 XSLT 文件以及一个 XSLT 处理程序。XSLT 文档必须使用 DOM 加载。PHP5 仅支持 libxslt 处理程序。

使用 XSL

XSL 一个有趣的应用是动态地创建 xml(标准化越来越近了) 文件以便包含刚从数据库中选择的数据。利用这种技术可以创建完整的 Web 应用程序,在其中用数据库查询得到的 xml(标准化越来越近了) 文件编写 PHP 脚本,然后使用 XSL 转换生成真正的 HTML 文档。

这种方法将表示层和业务层彻底分开,从而能够独立地维护这些层。

清单 4 演示了 xml(标准化越来越近了) 输入文件、XSL 样式表、XSLT 处理程序和多种可能的输出之间的关系。

清单 4. xml(标准化越来越近了) 转换

<?php
// Create new XSLTProcessor
$xslt = new XSLTProcessor();
//Both the source document and the stylesheet must be
//DOMDocuments, but the result can be a DOMDocument,
//a file, or even a String.
// Load the XSLT stylesheet
$xsl = new DOMDocument();
$xsl->load('recipe.xsl');
// Load the stylesheet into the processor
$xslt->importStylesheet($xsl);
// Load xml(标准化越来越近了) input file
$xml(标准化越来越近了) = new DOMDocument();
$xml(标准化越来越近了)->load('recipe.xml(标准化越来越近了)');
//Now choose an output method and transform to it:
// Transform to a string
$results = $xslt->transformToxml(标准化越来越近了)($xml(标准化越来越近了));
echo "String version:";
echo htmlentities($results);
// Transform to DOM object
$results = $xslt->transformToDoc($xml(标准化越来越近了));
echo "The root of the DOM Document is ";
echo $results->documentElement->nodeName;
// Transform to a file
$results = $xslt->transformToURI($xml(标准化越来越近了), 'results.txt');
?>


结束语

本系列的第一部分讨论了使用文档对象模型和 Simplexml(标准化越来越近了) 执行简单和复杂的解析任务。第 2 部分考察了 xml(标准化越来越近了)Reader 的使用,它提供了一种比 SAX 更快更简单的办法。

这篇文章又介绍了如何访问基于 REST 的 Web 服务这类远程文件,如何使用 XSLT 轻松地将 xml(标准化越来越近了) 数据输出到字符串、DOM 文档对象或者文件。

上一页  1 2 3 4 5 

Tags:面向 PHP 开发

编辑录入:coldstar [复制链接] [打 印]
赞助商链接