2

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

在此处输入图像描述

只是为了确保,这是发送参数的好方法,所以我可以用

<xsl:param ... />?

如果是这样,我该如何使用它?

谢谢!

4

2 回答 2

3

请参阅S9APIExamples.java

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());
}
于 2012-01-22T04:49:04.750 回答
1

从消息中可以看出,您需要传递 annet.sf.saxon.s9api.Qname作为第一个参数(而不仅仅是 string "myVar")。

第二个参数必须构造为net.sf.saxon.s9api.XdmValue.

只是为了确保,这是发送参数的好方法,所以我可以用

<xsl:param ... />?

在您的 XSLT 样式表(主样式表和在一个xsl:import或一个xsl:include指令中引用的任何样式表模块)中,您必须有一个全局(的子级xsl:stylesheetxsl:param,其名称与用于构造Qname您作为第一个参数传递给setParameter().

setParameter()执行该方法并调用转换时,相应的全局xsl:param将具有用于构造XdmValue作为第二个参数传递给setParameter().

于 2012-01-22T04:54:14.387 回答