2011-12-23 25 views
1

在XSL樣式表中,我試圖將document()函數與相對路徑用於XML文件。我試圖加載的XML文件與樣式表位於同一個文件夾中。在後端代碼是使用變壓器調用XSLT在WebLogic中調用具有相對路徑的xslt document()函數

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應用程序路徑。

回答

2

由於您提供了一個StreamSource並且沒有設置systemId,所以XSLT處理器不知道樣式表從哪裏加載,因此它無法智能地解析相對URI。使用StreamSource上的setSystemId()方法爲樣式表設置基礎URI。