我正在使用Saxon 9 HEand in NetBeans 7.0.1,当我尝试将参数发送到我的样式表时出现以下错误:

只是为了确保,这是发送参数的好方法,所以我可以用
<xsl:param ... />?
如果是这样,我该如何使用它?
谢谢!
我正在使用Saxon 9 HEand in NetBeans 7.0.1,当我尝试将参数发送到我的样式表时出现以下错误:

只是为了确保,这是发送参数的好方法,所以我可以用
<xsl:param ... />?
如果是这样,我该如何使用它?
谢谢!
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());
}
从消息中可以看出,您需要传递 annet.sf.saxon.s9api.Qname作为第一个参数(而不仅仅是 string "myVar")。
第二个参数必须构造为net.sf.saxon.s9api.XdmValue.
只是为了确保,这是发送参数的好方法,所以我可以用
<xsl:param ... />?
在您的 XSLT 样式表(主样式表和在一个xsl:import或一个xsl:include指令中引用的任何样式表模块)中,您必须有一个全局(的子级xsl:stylesheet)xsl:param,其名称与用于构造Qname您作为第一个参数传递给setParameter().
当setParameter()执行该方法并调用转换时,相应的全局xsl:param将具有用于构造XdmValue作为第二个参数传递给setParameter().