如何通过XML文件作为参数,以XSL转换java(oracle其)?
-
18-09-2019 - |
题
我试图通过一种XML document to XSLT样式表作为一个参数。我相信代码是用oracle其转换(这是使用JAVA1.4.2,春天,而我是新来的代码,所以我不确定什么是获取载在结束)。在我第一次尝试,我只是创造了一个文件的对象,并将此作为参数的变压器,但是,试图复制的可变成树给没有结果。问题来考虑是:
这甚至可能在一般情况下XSLT变形金刚?(现在看来似乎应该是,作为一般XSLT变量/参数可以包含nodesets)
它是可能具体地与oracle其(或xalan,这也是在类路径)?
如果是这样,我怎么让它工作?
解决方案
答案是,这是可能的,然而,它是非直观的,至少对于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处理器,因此情况因人而异...
不隶属于 StackOverflow