在 WebLogic 中使用相对路径调用 xslt document() 函数
Posted
技术标签:
【中文标题】在 WebLogic 中使用相对路径调用 xslt document() 函数【英文标题】:Calling xslt document() function with relative path in WebLogic 【发布时间】:2012-01-26 15:12:24 【问题描述】:在 XSL 样式表中,我尝试使用带有 XML 文件相对路径的 document() 函数。我尝试加载的 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】:因为您提供了 StreamSource 而没有设置 systemId,XSLT 处理器不知道样式表是从哪里加载的,因此它无法智能地解析相对 URI。使用 StreamSource 上的 setSystemId() 方法为样式表设置基本 URI。
【讨论】:
以上是关于在 WebLogic 中使用相对路径调用 xslt document() 函数的主要内容,如果未能解决你的问题,请参考以下文章