2009-11-03 3 views
17

Harici bir kaynaktan parametreleri kullanmam gereken bir xsl dosyam var. Ben Java kullanıyorum ve benim kod şöyle görünür:XSL Java ile parametrelerde dönüşüm

TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
Transformer xsltTransformer = transformerFactory.newTransformer(xsltSource); 
xsltTransformer.setParameter(parameterName, parameterValue); 

Ancak bir istisna 2 satırında atılır - Değişken veya parametre 'variable_name' tanımsız. XSL'nin derlendiğini ve muhtemelen transformatör oluşturulduğunda derlendiğini anlıyorum.

Peki, parametreleri dönüştürüme nasıl geçirebilirim? SetParameter metodu nasıl kullanılır?

+0

tekrar kontrol edin olduğunu düşünerek değişkenler ve params hata yaptı. –

cevap

43

Eğer böyle bir parametre geçirirseniz: parametre dönüşümü tarafından alınabilir

transformer.setParameter("render_id", "1234"); 

:

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > 

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

<!-- Receives the id of the menu being rendered. --> 
<xsl:param name="render_id" /> 
+3

Great Ans, FYI parametresinin xsl'de herhangi bir değeri varsa, yok sayılır ve Java tarafından gönderilenler öncelikli olur – SoulMan

2

RSP'nin cevabı nokta oldu. Teşekkürler. Sadece bir parametreyi bir değişkene aynı şekilde iletemediğinizi eklemek istiyorum (Java'nın TransformerFactory aracılığıyla parametreleri ayarlıyorum).

Ben düzgün ve vaka XSLT'de ilan aynı olduğundan ParameterName yazıldığından emin olmak için değiştirilebilir :)

+1

Burada 'param' ve 'variable' arasındaki farklar hakkında iyi bir cevap var: http://stackoverflow.com/a/11854157/1813669 – Scadge