我试图传递一个w3c.dom.Document,Element并NodeList作为参数传递给xslt变换.
我希望能够在xslt中处理它:
<xsl:param name="links" />
<xsl:template match="/">
<record>
<xsl:for-each select="$links/*">
<test />
</xsl:for-each>
</record>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
我将参数传递为:
Document params = createLinksParams(links);
transformer.setParameter("links", params);
Run Code Online (Sandbox Code Playgroud)
我得到这个例外:
'从'com.sun.org.apache.xerces.internal.dom.DocumentImpl'到'node-set'的转换无效.'
我也试过exslt:node-set(),xalan:nodeset()等等,但它不工作.
似乎内部xalan除了他自己的Node实现.
如何在不引发此问题的情况下做类似的事情?
我无法使用,document($param)因为我在运行中构建了doc.
(发布一个新答案,因为前一个答案没有解决问题,而这个新答案与前一个答案完全不同)
似乎是 XALAN 编译处理器的一个已知问题(XALANJ-2057, 如何将节点作为参数传递给 XSLTC 处理器的 translet)。
那么,有哪些替代方案呢?