我试图通过一种XML document to XSLT样式表作为一个参数。我相信代码是用oracle其转换(这是使用JAVA1.4.2,春天,而我是新来的代码,所以我不确定什么是获取载在结束)。在我第一次尝试,我只是创造了一个文件的对象,并将此作为参数的变压器,但是,试图复制的可变成树给没有结果。问题来考虑是:

  1. 这甚至可能在一般情况下XSLT变形金刚?(现在看来似乎应该是,作为一般XSLT变量/参数可以包含nodesets)

  2. 它是可能具体地与oracle其(或xalan,这也是在类路径)?

  3. 如果是这样,我怎么让它工作?

有帮助吗?

解决方案

答案是,这是可能的,然而,它是非直观的,至少对于Oracle XSL处理器。我尝试过的以下(非工作)调用(名称的改变,以保护无辜):

Document x = createDocumentForMe();
transformer.addParameter("param",x);

Document x = createDocumentForMe();
transformer.addParameter("param",new DOMSource(x));

(这一第二的基础上,也许DOMSource会的工作,因为它是java。xml。转换接口DOM)。援引,为我工作在最终采取的洞察力,XSL使用XPath,并有效类型的变基本上是串或nodesets,并XPath返回nodesets.以下作品对我说:

Document x = createDocumentForMe();
XPathExpression xpe = XPathFactory.newInstance().newXPath().compile("/");
transformer.addParameter("param",xpe.evaluate(x, XPathConstants.NODESET));

这基本上使用XPath得到一个节点集中仅含的根本文件的通过在DOM对象。然而,这似乎是有点黑客和可能的工作不与其他XSL处理器,因此情况因人而异...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top