2011-12-23 2 views
1

В таблице стилей XSL я пытаюсь использовать функцию document() с относительным путем к XML-файлу. Файл XML, который я пытаюсь загрузить, находится в той же папке, что и таблица стилей. Код в Бэкэнд вызова XSLT с использованием трансформатораВызов функции xslt document() с относительным путем в WebLogic

Java Code

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')" /> 

Но почему-то не кажется, чтобы загрузить файл, он дает следующее error, FODC0005: java.io.FileNotFoundException: D: \ Applications \ weblogic_domain \ config.xml Кажется, что XSL ищет файл в папке домена WebLogic, а не в пути веб-приложений.

ответ

2

Поскольку вы поставляете StreamSource и не устанавливаете systemId, XSLT-процессор не имеет понятия, откуда была загружена таблица стилей, поэтому он не может разумно разрешить относительный URI. Используйте метод setSystemId() в StreamSource, чтобы установить базовый URI для таблицы стилей.

Смежные вопросы