php&java(三)

企鹅博客
企鹅博客
企鹅博客
25193
文章
0
评论
2020年10月6日00:08:02 评论 7 views 2349字阅读7分49秒

例子二:通过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类有一个更好的了解。

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

继续阅读
css的一些小技巧!页面视觉差!_html/css_WEB-ITnose html教程

css的一些小技巧!页面视觉差!_html/css_WEB-ITnose

相当长的一段时间,现在网站与所谓的“视差”效果一直很受欢迎。 万一你没有听说过这种效果,不同的图像,在不同的方向移动或层主要包括。这导致了一个很好的光学效应,使参观者的注意。 在网页设计中,为了实现这...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: