广

PHP编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    php&java(三)

    2018-09-29 11:22:45 次阅读 稿源:互联网
    零七广告
    例子二:通过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 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";
    $xsl  = "/web/htdocs/xml_java/rss_html.xsl";
    $out = xslt_transform($xml,$xsl);
    echo $out;

    ?>

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

    教程结束了,希望你能够从这篇教程中学到点东西,以下是一些你用得到的链接:
    http://www.php4win.de ~ A great Win32 distribution of PHP
    http://www.javasoft.com ~ Sun's Java release
    http://www.jars.com ~ Start searching for handy Java classes
    http://www.gamelan.com ~ More Java classes
    http://www.technetcast.com/tnc_play_stream.html?stream_id=400 ~ Sam Ruby about PHP and Java integration at Open Source Convention 2000 (audio)
    http://xml.apache.org ~ Apache XML Project
    http://www.phpbuilder.com/columns/justin20001025.php3 ~ Transforming XML with XSL using Sablotron

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告