- PR -

XSLTからJavaのメソッドを呼ぶためには

投稿者投稿内容
プレミアム
会議室デビュー日: 2007/08/15
投稿数: 9
投稿日時: 2008-08-06 11:54
http://xml.apache.org/xalan-j/extensions.html#ext-func-calls
に詳しい使用方法が載っていました。

「school2.xsl」と「School.java」を下記のようにすると、「sxhool3.xml」が取得できました。

・「school2.xsl」
コード:
<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
version="1.0" 
xmlns:school-class="xalan://School" > 

	<xsl:output method="xml" encoding="UTF-8"/> 

	<xsl:template match="school"> 
		<xsl:variable name="instance" select="school-class:new()"/> 
		<xsl:if test="@name"> 
			<xsl:value-of select="school-class:setName($instance,@name)" /> 
		</xsl:if> 
	</xsl:template>

</xsl:stylesheet>



・「school2.xsl」
コード:
// School.java 
public class School{
	public String setName(String name){
		return name;
	}
}



・「school3.xml」(出力結果)
コード:
<?xml version="1.0" encoding="UTF-8"?>saitama



<xsl:variable>の変数は、<xsl:template>内部で使用しないと値が取得できないのではないかと思います。また、staticメソッドでない場合は、インスタンス化する必要があると思います。

スキルアップ/キャリアアップ(JOB@IT)