gpt4 book ai didi

java - 将 xml 节点/文档/片段作为参数传递给 xslt

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:19:02 28 4
gpt4 key购买 nike

我尝试将 w3c.dom.DocumentElementNodeList 作为参数传递给 xslt 转换。

我希望能够在 xslt 中处理它:

<xsl:param name="links" />
<xsl:template match="/">
<record>
<xsl:for-each select="$links/*">
<test />
</xsl:for-each>
</record>
</xsl:template>

我将参数传递为:

        Document params = createLinksParams(links);
transformer.setParameter("links", params);

我得到这个异常:

'Invalid conversion from 'com.sun.org.apache.xerces.internal.dom.DocumentImpl' to 'node-set'.'

我也尝试了 exslt:node-set()xalan:nodeset() 等,但它不起作用。

似乎在内部 xalan 除了他自己的 Node 实现。

如何在不出现此问题的情况下做类似的事情?

我不能使用 document($param) 因为我是即时构建文档的。

最佳答案

(发布一个新的答案,因为以前的没有解决问题,这个新的与以前的根本不同)

这似乎是 XALAN 编译处理器的一个已知问题(XALANJ-2057How can I pass a node as parameter to translets for XSLTC Processor ).

那么,有哪些替代方案?

  1. 乱用 URI,如中所述对 How can I pass a nodeas parameter to translets for XSLTCProcessor 的回应发帖
  2. 代替XALAN 编译处理器 (XSLTC),使用 XALAN 解释处理器。或支持此类行为的任何其他 XSLT 处理器。
  3. 使用 DTMAxisIterator相反,也在对 How can I pass a nodeas parameter to translets for XSLTCProcessor 的回复中概述发布 - 不过不确定它是否有效。
  4. 创建一个新的 DOM 树,结合您的“参数”DOM 和原始 XSLT 输入文档

关于java - 将 xml 节点/文档/片段作为参数传递给 xslt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3789044/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com