如何用PHP把RDF内容插入到Web站点之中(5)

cyman20 2002-03-16 05:44:21
8)增加一点样式(Adding A Little Style)
万一你讨厌遍历那些PHP数组并把他们用HTML标记出来的方式,那么你也可以选择通过使用XSLT样式单来格式化和显示这些数据。PHP4 .1可以通过新的XSLT API来支持Sablotron XSLT处理器,新的API可以用来合并一个XSLT样式单和一个XML文档(在这里,即RDF文件),从而非常容易的把XML标记转化为浏览器可读的HTML标记。
我不想在这上面讲的太细,你可以看一下PHP 手册,或者关注一下本文后面的链接以获得更加详细的信息。不过我还是会给出一个简单的例子来说明这个问题。首先,给出样式单文件:
<?xml version="1.0"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rss="http://purl.org/rss/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/" version="1.0">

<!-- main page -->
<xsl:template match="/rdf:RDF">
<html>
<head>
<basefont face="Arial" size="2"/>
</head>
<body>
<xsl:apply-templates select="rss:channel" />
<ul>
<xsl:apply-templates select="rss:item" />
</ul>
</body>
</html>
</xsl:template>

<!-- channel -->
<xsl:template match="rss:channel">
<b>
<a>
<xsl:attribute name="href"><xsl:value-of select="rss:link"
/></xsl:attribute>
<xsl:value-of select="rss:title" />
</a>
</b>
</xsl:template>

<!-- item -->
<xsl:template match="rss:item">
<li />
<a>
<xsl:attribute name="href"><xsl:value-of select="rss:link"
/></xsl:attribute>
<xsl:value-of select="rss:title" />
</a>
<br />
<xsl:value-of select="rss:description" />
</xsl:template>

</xsl:stylesheet>
下面是PHP脚本,用来把上面的样式单和讲的“鲜肉”RDF文档合并起来,生成一个HTML页面:
<?php
// XML file
// this needs to be a local file
$xml = "fm-releases.rdf";

// XSLT file
$xslt = "fm.xsl";

// create a new XSLT processor
$xp = xslt_create();

// transform the XML file as per the XSLT stylesheet
// return the result to $result
$result = xslt_process($xp, $xml, $xslt);
if ($result)
{
// print it
echo $result;
}

// clean up
xslt_free($xp);

?>
我想这相当简单,无须再加说明。两个文档合并在一起,产生了下面的“合成物”:

这是把RDF数据转换成浏览器可读的HTML的另一种方法,或许简单一些(尽管并不是最理想的)。不过要注意一点,你需要运行一个外部程序来定期更新你的RDF文件的本地副本,原因在于PHP XSLT处理器访问远端文件可能有困难。

9)家庭作业(Homework)
如果你有兴趣对这些文中谈到的和没谈到的技术了解的更多,你可以考虑访问下面的链接:
RSS 1.0 规范:
http://www.purl.org/rss/1.0/
RSS 发展史:
http://backend.userland.com/stories/rss091

W3C 网站关于RDF的内容:
http://www.w3.org/RDF/

PHP中关于SAX和DOM编程的讨论:http://www.devshed.com/Server_Side/XML/XMLwithPHP

用PHP实现XSLT转换的讨论:
http://www.devshed.com/Server_Side/XML/XSLTrans

关于PHP类的讨论:
http://www.devshed.com/Server_Side/PHP/BackToClass

XML基础的讨论:
http://www.devshed.com/Server_Side/XML/XMLBasic

XSLT基础的讨论:
http://www.devshed.com/Server_Side/XML/XSLBasics

PHP手册中关于SAX函数的内容:
http://www.php.net/manual/en/ref.xml.php

PHP手册中关于XSLT函数的内容:
http://www.php.net/manual/en/ref.xslt.php

下次再见了……保重身体呀!
注意:本文中的所有例子都在Linux/i386,Apache1.3.12,,PHP4.1.1环境下通过检验。
这些例子仅用于说明问题,不是为了某一个产品。Melonfire网站不对文中的源代码提供任何授权或支持。(本文版权为Melonfire网站所有, 原文出处:http://www.devshed.com/Server_Side/PHP/PHPRDF/page1.html)

...全文
107 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rosen 2002-03-16
  • 打赏
  • 举报
回复
关注!!!
谢谢cyman20同志... ...
bombshell 2002-03-16
  • 打赏
  • 举报
回复
太好了cyman20 ,你真是做了件大好事。收藏。
RobinCat 2002-03-16
  • 打赏
  • 举报
回复
走人~
sangzier 2002-03-16
  • 打赏
  • 举报
回复
谢谢!!
XML越来越热,关于XML的基础教程网络上也随处可见。可是一大堆的概念和术语往往让人望而生畏,很多朋友问我:XML到底有什么用,我们是否需要学习它?我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章。首先有两点是需要肯定的:   第一:XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解,等待只会让你失去机会;   第二:新知识肯定会有很多新概念,尝试理解和接受,您才可能提高。不要害怕和逃避,毕竟我们还年轻。   本文共分五大部分。分别是XML快速入门,XML的概念,XML的术语,XML的实现,XML的实例分析。最后附录介绍了XML的相关资源。作者站在普通网页设计人员的角度,用平实生动的语言,向您讲述XML的方方面面,帮助你拨开XML的神秘面纱,快速步入XML的新领域。 • 第一章:XML快速入门 • 一. 什么是XML? • 二. XML是新概念吗? • 三. 使用XML有什么好处? • 四. XML很难学吗? • 五. XML和HTML的区别 • 六. XML的严格格式 • 七. 关于XML的更多 • 第二章:XML概念 • 一. 扩展性 • 二. 标识 • 三. 语言 • 四. 结构化 • 五. Meta数据 • 六. 显示 • 七. DOM • 第三章:XML的术语 • 导言 • 一.XML文档的有关术语 • 二.DTD的有关术语 • 第四章:XML的语法 • 一.XML语法规则 • 二.元素的语法 • 三.注释的语法 • 四.CDATA的语法 • 五.Namespaces的语法 • 六.entity的语法 • 七.DTD的语法 • 第五章:XML实例解释 • 一.定义新标识 • 二.建立XML文档 • 三.建立相应的HTML文件 • 第六章:XML相关资源 五. XML和HTML的区别 XML和HTML都来自于SGML,它们都含有标记,有着相似的语法,HTML和XML的最大区别在于:HTML是一个定型的标记语言,它用固有的标记来描述,显示网页内容。比如表示首行标题,有固定的尺寸。相对的,XML则没有固定的标记,XML不能描述网页具体的外观,内容,它只是描述内容的数据形式和结构。 这是一个质的区别:网页将数据和显示混在一起,而XML则将数据和显示分开来。 我们看上面的例子,在myfile.htm中,我们只关心页面的显示方式,我们可以设计不同的界面,用不同的方式来排版页面,但数据是储存在myfile.xml中,不需要任何改变。 (如果你是程序员,你会惊讶的发现,这与模块化面向对象编程的思想极其相似!其实网页何尝不是一种程序呢?) 正是这种区别使得XML在网络应用和信息共享上方便,高效,可扩展。所以我们相信,XML做为一种先进的数据处理方法,将使网络跨越到一个新的境界。 六. XML的严格格式 吸取HTML松散格式带来的经验教训,XML一开始就坚持实行"良好的格式"。 我们先看HTML的一些语句,这些语句在HTML中随处可见: 1. sample 2.sample 3.sample 4.samplar 在XML文档中,上述几种语句的语法都是错误的。因为: 1.所有的标记都必须要有一个相应的结束标记; 2.所有的XML标记都必须合理嵌套; 3.所有XML标记都区分大小写; 4.所有标记的属性必须用""括起来; 所以上列语句在XML中正确的写法是 1. sample 2.sample 3.sample 4.samplar   另外,XML标记必须遵循下面的命名规则: 1.名字中可以包含字母、数字以及其它字母; 2.名字不能以数字或"_" (下划线) 开头; 3.名字不能以字母 xml (或 XML 或 Xml ..) 开头; 4.名字中不能包含空格。 在XML文档中任何的差错,都会得到同一个结果:网页不能被显示。各浏览器开发商已经达成协议,对XML实行严格而挑剔的解析,任何细小的错误都会被报告。你可以将上面的myfile.xml修改一下,比如将改为,然后用IE5直接打开myfile.xml,会得到一个出错信息页面: XML轻松学习手册 ajie

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧