我正在使用Saxon 9 HE
,在NetBeans 7.0.1
中,当我尝试将参数发送到样式表时出现以下错误:
只是为了确保,这是发送参数的好方法,所以我可以用
取回它 <xsl:param ... />
?
如果是这样,我该如何使用它?
谢谢!
答案 0 :(得分:2)
String[] fruit = {"apple", "banana", "cherry"};
QName paramName = new QName("in");
for (String s: fruit) {
StringWriter sw = new StringWriter();
out.setOutputWriter(sw);
t.setParameter(paramName, new XdmAtomicValue(s));
t.setDestination(out);
t.transform();
System.out.println(s + ": " + sw.toString());
}
答案 1 :(得分:1)
从消息中可以看出,您需要传递net.sf.saxon.s9api.Qname
作为第一个参数(而不仅仅是字符串"myVar"
)。
第二个参数必须构造为net.sf.saxon.s9api.XdmValue
。
只是为了确保,这是发送参数的好方法,所以我可以用
取回它
<xsl:param ... />
?
在您的XSLT样式表(xsl:import
或xsl:include
指令中引用的主要样式表和任何样式表模块)中,您必须具有全局(子xsl:stylesheet
){{ 1}}与用于构造xsl:param
的字符串同名,并将其作为Qname
的第一个参数传递。
当执行setParameter()
方法然后调用转换时,相应的全局setParameter()
将具有用于构造作为{{的第二个参数传递的xsl:param
的值。 {1}}。