我想用saxon转换xml
,在XSLT中,
我添加一个参数,我希望它作为“文档”
<xsl:param name="doc" as="node()*" />
和java ,
DOM4JDocumentWrapper documentNode = new DOM4JDocumentWrapper(doc4j, "", config);
NodeInfo nodeInfo=documentNode.getRoot();
XsltTransformer tr = xsltExecutable.load();
tr.setParameter(idQname, new XdmNode(nodeInfo));
但遇到了这样的错误:
Caused by: net.sf.saxon.trans.XPathException: Cannot convert value class net.sf.saxon.option.dom4j.DOM4JNodeWrapper of type element(Q{}xxx) to class net.sf.saxon.tree.tiny.TinyElementImpl
at net.sf.saxon.expr.PJConverter$Identity.convert(PJConverter.java:527)
答案 0 :(得分:0)
看起来好像您正在使用的Saxon配置不了解DOM4J对象模型实现。也就是说,它尚未使用Configuration.registerExternalObjectModel()注册。
对于Saxon-PE和Saxon-EE,默认情况下应该知道,但是对于Saxon-HE,它必须明确注册。因此,我们需要了解您正在使用的Saxon软件版本及其初始化方式。
这个问题对撒克逊人来说非常具体,获得这些问题答案的最佳策略是在saxonica.plan.io的论坛上提问。我们会不时在StackOverflow上检查标记为“saxon”的问题,但我们可能需要几天才会注意到它们,并且我们不会优先考虑它们。