欢迎光临
我们一直在努力

php&java(三)-PHP教程,PHP应用

建站超值云服务器,限时71元/月

例子二:通过xalan 1.2,使用xslt转换xml

做为第二个例子,我们使用了xalan-java的xslt引擎,这个引擎来自于apache的xml项目,使用这个程序,我们能够使用xsl转换xml源文件。这将极大的方便我们处理文档和进行内容管理。

开始之前,我们需要将xerces.jar 和 xalan.jar文件放入java.class.path目录下(这两个文件包含在xalan-java 1.2 中,可以从xml.apache.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.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.

$xmlid = new java("org.apache.xalan.xslt.xsltinputsource", $xml);

$stylesheetid = new java("org.apache.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.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($xmlid,$stylesheetid,$resulttarget);

// use the stringwriters method tostring() to

// return the buffers 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";

$xsl = "/web/htdocs/xml_java/rss_html.xsl";

$out = xslt_transform($xml,$xsl);

echo $out;

?>

虽然这种效果我们可以通过其它方法实现,或许那些方法更好,但这个例子能让你对php调用java类有一个更好的了解。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » php&java(三)-PHP教程,PHP应用
分享到: 更多 (0)

相关推荐

  • 暂无文章