PHP&Java (3)

黄舟
Freigeben: 2023-03-03 15:04:01
Original
918 Leute haben es durchsucht

Beispiel 2: Verwendung von XSLT zum Konvertieren von XML über Xalan 1.2

Als zweites Beispiel verwenden wir die XSLT-Engine von Xalan-java, die aus dem XML-Projekt von APACHE stammt ist in der Lage, XML-Quelldateien mithilfe von XSL zu transformieren. Dies wird unsere Dokumentenverarbeitung und Inhaltsverwaltung erheblich erleichtern.

Bevor wir beginnen, müssen wir die Dateien xerces.jar und xalan.jar im Verzeichnis java.class.path ablegen (diese beiden Dateien sind in Xalan-Java 1.2 enthalten und können von xml.apache heruntergeladen werden). .org herunterladen).
Das PHP-Programm lautet wie folgt:
Die Funktion xslt_transform() verwendet XML- und XSL-Dateien als Parameter und das Format kann ein Dateiname (z. B. foo.xml) oder eine URL (z. B. http) sein ://localhost/foo.xml).


function xslt_transform($xml,$xsl) {

// Ein XSLTPProcessorFactory-Objekt erstellen stellt den Prozessor zum Durchführen von Transformationen her.
$XSLTProcessorFactory = new java("org.apache.xalan.xslt.XSLTProcessorFactory");

// Verwenden Sie die XSLTProcessorFactory-Methode getProcessor(), um einen
zu erstellen // neues XSLTProcessor-Objekt.
$XSLTProcessor = $XSLTProcessorFactory->getProcessor();

// Verwenden Sie XSLTInputSource-Objekte, um Eingaben für die XSLTProcessor
// Process()-Methode für die Transformation bereitzustellen. Erstellen Sie Objekte sowohl für die
// XML-Quelle als auch für die XSL-Eingabequelle von
// XSLTInputSource ist (in diesem Fall) ein „Systembezeichner“ (URI), der
// sein kann eine URL oder ein Dateiname. Wenn es sich bei der Systemkennung um eine URL handelt,
// muss sie vollständig aufgelöst werden 🎜> $stylesheetID = new java("org.apache.xalan.xslt.XSLTInputSource", $xsl);

// Erstelle ein stringWriter-Objekt für die Ausgabe
$stringWriter = new java(" java.io.StringWriter");

// Erstelle ein ResultTarget-Objekt für die Ausgabe mit der Klasse XSLTResultTarget
//. Parameter von XSLTResultTarget ist (in diesem Fall) ein 'Zeichen
// stream', das das stringWriter-Objekt ist.
$resultTarget = new java("org.apache.xalan.xslt.XSLTResultTarget", $stringWriter); // Eingabe mit der XSLTProcessors-Methode verarbeiten (). Diese
// Methode verwendet das XSL-Stylesheet, um die XML-Eingabe zu transformieren und platziert
// das Ergebnis im Ergebnisziel
$XSLTProcessor->process($xmlID,$stylesheetID,$ resultTarget);

// Verwenden Sie die Methode toString() von stringWriters, um
// den aktuellen Wert des Puffers als Zeichenfolge zurückzugeben, um das
// transformierte Ergebnis zu erhalten $stringWriter->toString();
$stringWriter->close();
return($result);

? Sobald wir sie definiert haben, können wir sie aufrufen. In der folgenden Routine zeigt die Variable $xml auf eine URL-Zeichenfolge, ebenso wie $xsl. In diesem Beispiel werden die 5 neuesten Artikeltitel von phpbuilder.com angezeigt.


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

?>

Wenn Sie das Programm auf dem lokalen Computer ausführen, müssen Sie sicherstellen, dass Ihre Funktionsparameter auf den richtigen Dateinamen verweisen.


$xml = "/web/htdocs/xml_java/rss_feed.xml";
$xsl = "/web/htdocs/xml_java/rss_html.xsl" ;
$out = xslt_transform($xml,$xsl);
echo $out;

Obwohl wir diesen Effekt auch durch andere Methoden erzielen können Methoden sind besser, aber dieses Beispiel wird Ihnen ein besseres Verständnis dafür vermitteln, wie PHP JAVA-Klassen aufruft.

Das Obige ist der Inhalt von php&java (3). Weitere verwandte Artikel finden Sie auf der chinesischen PHP-Website (www.php.cn)!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage