在WebLogic中使用相对路径调用xslt document()函数

时间:2011-12-23 06:39:21

标签: xml weblogic xslt

在XSL样式表中,我正在尝试将document()函数与XML文件的相对路径一起使用。我正在尝试加载的XML文件与样式表位于同一文件夹中。后端的代码是使用转换器

调用XSLT

Java代码

    TransformerFactory tFactory = TransformerFactory.newInstance();
    InputStream inXSL = getClass().getResourceAsStream("/input.xsl");
    Transformer transformer = tFactory.newTransformer(new StreamSource(inXSL));
    transformer.transform(new StreamSource(inXMLStream), new StreamResult(outStream));

XSL

    <xsl:variable name="configXml" select="document('config.xml')" />

但由于某些原因它似乎没有加载文件,它会出现以下错误, FODC0005:java.io.FileNotFoundException:D:\ Applications \ weblogic_domain \ config.xml 看起来XSL正在WebLogic域文件夹而不是Web应用程序路径中查找该文件。

1 个答案:

答案 0 :(得分:2)

因为您提供了StreamSource而没有设置systemId,所以XSLT处理器不知道样式表的加载位置,因此它无法智能地解析相对URI。使用StreamSource上的setSystemId()方法为样式表设置基URI。