XSLT 1.0 でリスト


Project Euler を XSLT 2.0 で解いていますが,実は最初はブラウザでも動くと思って 1.0 で解こうとしていました。 2.0 で xsl:sequence が使えると知って変更したわけですが,別に 1.0 でもリストは作成できます。ポイントはリストを文字列として扱うことです。






	
	




	
	




	
	
	
		
			
		
		
			
		
		
			
		
	




	
	
	
		
			
				
			
		
		
			
				
					
						
					
				
				
			
		
	




	
	
	
	
	
		
			
				
					
						
						
					
				
				
					
						
					
				
			
		
		
			
				
					
						
					
				
				
				
				
					
						
					
				
			
		
	

これらを XSLT 2.0 で書き直すと次のようになります。


	
	



	
	



	
	
	



	
	
	



	
	
	
	

3 倍近く負担が減りましたね。しかも XSLT 2.0 はリストの状態で変数を保持することができるというおまけつきです。あと 1.0 だと xsl:call-template の戻り値の型が指定できないので boolean 値を返したつもりでも "true", "false" という文字列になるので非常にややこしいです。早くブラウザも 2.0 処理系になればいいのに。