phpamp;amp;amp;java(三)

例子二:通过Xalan 1.2,使用XSLT转换XML
做为第二个例子,我们使用了Xalan-java的XSLT引擎,这个引擎来自于APACHE的XML项目,使用这个程序,我们能够使用XSL转换XML源文件。这将极大的方便我们处理文档和进行内容管理。
开始之前,我们需要将xerces.jar 和
xalan.jar文件放入java.class.path目录下。 PHP程序如下:
函数xslt_transform()以XML和XSL文件为参数,形式可为文件名或URL。 ?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 = _feed.php?type=articles&limit=5; $xsl = _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类有一个更好的了解。
教程结束了,希望你能够从这篇教程中学到点东西,以下是一些你用得到的链接:
~ A great Win32 distribution of PHP ~ Sun’s Java release ~ Start
searching for handy Java classes ~ More Java classes
_play_stream.html?stream_id=400 ~ Sam Ruby about PHP and Java
integration at Open Source Convention 2000 (audio) ~ Apache XML Project
~ Transforming XML with XSL using Sablotron

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图