php&java(三)

黄舟
发布: 2016-12-17 09:49:15
原创
998人浏览过

例子二:通过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)。 


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 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文章标题。 


$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; 

?> 

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


$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类有一个更好的了解。 

 以上就是php&java(三)的内容,更多相关文章请关注PHP中文网(www.php.cn)!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号