mb_language("uni"); mb_internal_encoding("utf-8"); mb_http_input("auto"); mb_http_output("utf-8"); ?>
これまでのチュートリアルをすべて実行済みで、環境が正しくセットアップされていることを確認します。さらに、コード内のサーバー情報とログイン情報の変更方法を理解していることを確認します。
(このチュートリアルの最後にある) tutorial9.javaをコンパイルして実行します。正常に実行されると、次のように表示されます。
コード |
Store results: <?xml version="1.0" encoding="UTF-8" ?> <Store-Results> <Documents-Processed> 1 </Documents-Processed> <Last-Doc-ID> 55 </Last-Doc-ID> </Store-Results> Query Results: <?xml version="1.0" encoding="UTF-8" ?> <Query-Results> <tutorial9> <title>Tutorial 9 - XSLT</title> <author>Richard Whittaker</author> </tutorial9> <tutorial9> <title>The Lord of the Rings</title> <author>J.R.R. Tolkien</author> </tutorial9> </Query-Results> Transform Results: <html> <h1>Tutorial 9 - XSLT</h1> <h2>Richard Whittaker</h2> </html> |
これまでのチュートリアルと比べて、とくに変わったところはありません。ただし、以下の点が異なります。
コード |
NeoTransform transform = new NeoTransform(neosession);
|
クエリーを実行可能にするために、SessionManagedNeoConnectionを使ってNeoTransformオブジェクトを初期化します。
transformXMLメソッドはクエリーを実行し、2番目のパラメータとして提供されたXSLを使って、そのクエリーの結果を変換します。transformXMLの2番目のパラメータはStringオブジェクトであり、さまざまな方法で取得されます。この例では、単純化のために、ソースコードとして直接提供します。
いくつかの試行
ここでは単にtransformXMLに渡されるクエリー結果を変換しているだけですが、それを示すために、3つの異なるtransformXMLステートメントが提供されています(そのうち2つはコメント化されています)。試しに、それぞれを非コメント化またはコメント化してみてください。あるいは、独自の第3のtutorial9文書を保存することもできます。提供されているサンプルは、保存されている文書のどちらか一方、または両方を変換します。
--- チュートリアル(9)の終わり --- 以下はソースコードです ---
コード |
//Title: tutorial9 using NeoCore XMS //Version: 1.0 //Date: 4/26/04 //Copyright: Copyright (c) 2004 //Author: Richard Whittaker //Company: Xpriori //Description: Demonstrates an XSLT transform import com.neocore.httpclient.*; public class tutorial9 { // change the below "server" variable to the machine name or IP if // not running XMS on this machine public static String server = "localhost"; public static SessionManagedNeoConnection neosession; public static String sid = null; public static void main(String[] args) { // This is the xslt we'll use for the transform. This can be obtained from a // file or other source if desired. Formatting is unimportant - it's just // indented here for readability. String xsl = "<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>" + " <xsl:template match=\"/\">" + " <html>" + " <xsl:apply-templates select=\"//tutorial9\"/>" + " </html>" + " </xsl:template>" + " <xsl:template match=\"tutorial9\">" + " <h1><xsl:value-of select=\"title\"/></h1>" + " <h2><xsl:value-of select=\"author\"/></h2>" + " </xsl:template>" + "</xsl:stylesheet>"; //----------------------- get connection and login --------------------- try{ // neosession will manage session id for us neosession = new SessionManagedNeoConnection(server, 7700); }catch(Exception e){ System.out.println("Cannot connect to NeoCore server:" + e); return; } try{ // change the below password to what you entered during the installation sid = neosession.login("Administrator", "password"); }catch(Exception e){ System.out.println("Cannot login to NeoCore server:" + e); return; } try { //---------- first, delete any tutorial9 documents ----------- String s = neosession.deleteXML("/ND/tutorial9"); //-------------- now store a couple documents ---------------- s = neosession.storeXML("<tutorial9><title>Tutorial 9 - XSLT</title><author>Richard Whittaker</author></tutorial9>", null, null); s = neosession.storeXML("<tutorial9><title>The Lord of the Rings</title><author>J.R.R. Tolkien</author></tutorial9>", null, null); System.out.println("Store results:\n" + s + "\n"); //----------------- now query the documents ------------------ s = neosession.queryXML("/ND/tutorial9"); System.out.println("Query Results:\n" + s + "\n"); //---------- now transform those results into html ----------- NeoTransform transform = new NeoTransform(neosession); String query; // the results of "query" will be transformed query = "/ND/tutorial9[author=\"Ri\"*]"; //query = "/ND/tutorial9[title=\"The Lord of the Rings\"]"; //query = "/ND/tutorial9"; s = transform.transformXML(query, xsl); System.out.println("Transform Results:\n" + s + "\n"); //------------------------- logout --------------------------- neosession.logout(); } catch(Exception e) { System.out.println("NeoCore error: " + e); } } } // END OF FILE - tutorial9.java |
▲このページのTOPへ