WEB开发网
开发学院WEB开发PHP php&java(三) 阅读

php&java(三)

 2008-02-15 18:33:31 来源:WEB开发网   
核心提示:例子二:通过Xalan 1.2,使用XSLT转换xml(标准化越来越近了) 做为第二个例子,php&java(三),我们使用了Xalan-java的XSLT引擎,这个引擎来自于apache(Unix平台最流行的WEB服务器平台)的xml(标准化越来越近了)项目,这个例子将显示5个最新的phpbuilder.com文章标
例子二:通过Xalan 1.2,使用XSLT转换xml(标准化越来越近了)

做为第二个例子,我们使用了Xalan-java的XSLT引擎,这个引擎来自于apache(Unix平台最流行的WEB服务器平台)的xml(标准化越来越近了)项目,使用这个程序,我们能够使用XSL转换xml(标准化越来越近了)源文件。这将极大的方便我们处理文档和进行内容管理。

开始之前,我们需要将xerces.jar 和 xalan.jar文件放入java.class.path目录下(这两个文件包含在Xalan-Java 1.2 中,可以从xml(标准化越来越近了).apache(Unix平台最流行的WEB服务器平台).org处下载)。
PHP程序如下:
函数xslt_transform()以xml(标准化越来越近了)和XSL文件为参数,形式可为文件名(如:foo.xml(标准化越来越近了))或URL(如:http://localhost/foo.xml(标准化越来越近了))。

<?php

function xslt_transform($xml(标准化越来越近了),$xsl) {

 // Create a XSLTProcessorFactory object. XSLTProcessorfactory is a Java
 // class which manufactures the processor for performing transformations.
 $XSLTProcessorFactory = new java("org.apache(Unix平台最流行的WEB服务器平台).xalan.xslt.XSLTProcessorFactory");

 // Use the XSLTProcessorFactory method getProcessor() to create a
 // new XSLTProcessor object.
 $XSLTProcessor = $XSLTProcessorFactory->getProcessor();

 // Use XSLTInputSource objects to provide input to the XSLTProcessor
 // process() method for transformation. Create objects for both the
 // xml(标准化越来越近了) source as well as the XSL input source. Parameter of
 // XSLTInputSource is (in this case) a 'system identifier' (URI) which
 // can be an URL or filename. If the system identifier is an URL, it
 // must be fully resolved.
 $xml(标准化越来越近了)ID = new java("org.apache(Unix平台最流行的WEB服务器平台).xalan.xslt.XSLTInputSource", $xml(标准化越来越近了));
 $stylesheetID = new java("org.apache(Unix平台最流行的WEB服务器平台).xalan.xslt.XSLTInputSource", $xsl);

 // Create a stringWriter object for the output.
 $stringWriter = new java("java.io.StringWriter");

 // Create a ResultTarget object for the output with the XSLTResultTarget
 // class. Parameter of XSLTResultTarget is (in this case) a 'character
 // stream', which is the stringWriter object. 
 $resultTarget = new java("org.apache(Unix平台最流行的WEB服务器平台).xalan.xslt.XSLTResultTarget", $stringWriter);

 // Process input with the XSLTProcessors' method process(). This
 // method uses the XSL stylesheet to transform the xml(标准化越来越近了) input, placing
 // the result in the result target.
 $XSLTProcessor->process($xml(标准化越来越近了)ID,$stylesheetID,$resultTarget);

 // Use the stringWriters' method toString() to
 // return the buffer's current value as a string to get the
 // transformed result.
 $result = $stringWriter->toString();
 $stringWriter->close();
 return($result);
}

?>

函数定义好后,我们就可以调用它了,在下面的例程中,变量$xml(标准化越来越近了)指向一个URL字符串,$xsl也是如此。这个例子将显示5个最新的phpbuilder.com文章标题。

<?php

$xml(标准化越来越近了) = "http://www.phpbuilder.com/rss_feed.php?type=articles&limit=5";
$xsl = "http://www.soeterbroek.com/code/xml(标准化越来越近了)/rss_html.xsl";
$out = xslt_transform($xml(标准化越来越近了),$xsl);
echo $out;

?>

如果你在本地机上运行程序,必须确保你的函数参数指向正确的文件名。

<?php

$xml(标准化越来越近了) = "/web/htdocs/xml(标准化越来越近了)_java/rss_feed.xml(标准化越来越近了)";

上一页 下一页

Tags:php java

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