Day 16: XSLT dengan Oracle XDK


Learning In HomeOriginal Date: 28 Januari 2009

Hari ini aku akan mencoba komponen XSLT milik Oracle XDK. Untuk melakukan transformasi melalui command line, aku dapat menggunakan tool oraxsl. Sebelum mulai menjalankan tool tersebut, aku mengatur CLASSPATH agar mengandung file xmlparserv2.jar terlebih dahulu.

Oracle menyediakan perluasan pada XSLT Processing-nya, dimana aku bisa menyertakan fungsi dan ekspresi Java di dalam dokumen XSL, seperti pada contoh berikut:


<xsl:stylesheet 
  xmlns:xsl=
"http://www.w3.org/1999/XSL/Transform" 
  version="1.0"
xmlns:math="http://www.oracle.com/XSL/
Transform/java/java.lang.Math">
<xsl:template match="/">
  <xsl:value-of 
     select="math:pow(10,5)" />
</xsl:template>

</xsl:stylesheet>

Contoh di atas akan selalu menghasilkan nilai 10^5 jika di-proses dengan oraxsl. Contoh lainnya, misalnya, untuk menampilkan tanggal hari ini:


<xsl:stylesheet 
  xmlns:xsl=
"http://www.w3.org/1999/XSL/Transform" 
  version="1.0"
  xmlns:date=
"http://www.oracle.com/XSL/Transform/
java/java.util.Date">
<xsl:variable name="tanggal" 
  select="date:new()" />
<xsl:template match="nama">

<xsl:value-of select=
 "date:toLocaleString($tanggal)" />
</xsl:template>
</xsl:stylesheet>

Pada contoh ini, aku mendeklarasikan sebuah object baru dari java.util.Date dengan nama tanggal. Lalu, aku memanggil method toLocaleString() dari object tanggal tersebut. Saat memanggil method apa saja dari sebuah class baru, aku menyertakan parameter pertama berupa nama variabel dari class tersebut.

Aku juga dapat melakukan transformasi di dalam program Java, seperti yang terlihat pada contoh berikut:


try {
			
  InputStream xslInput = new 
FileInputStream("c:\\test.xsl");
  XSLProcessor xslProcessor = new 
XSLProcessor();
  XSLStylesheet xsl = xslProcessor.
newXSLStylesheet(xslInput);
			
  DOMParser parser = new DOMParser();
  InputStream xmlInput = new 
FileInputStream("c:\\test.xml");
  parser.parse(xmlInput);
  XMLDocument doc = 
parser.getDocument();
			
  XMLDocumentFragment docResult = 
xslProcessor.processXSL(xsl, doc);
  docResult.print(System.out);
		
	
} catch (Exception e) {
  e.printStackTrace();
}

Perihal Solid Snake
I'm nothing...

Apa komentar Anda?

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: