2015-12-06 2 views
0

Я просмотрел различные сообщения, касающиеся свойств чтения из внешних файлов свойств. Похоже, есть функция - getProperty, которая может считывать значения из файла свойств, используя ключ. Я использую парсер саксона с интеграцией с весной. Я пытаюсь что-то подобное, как описано в посте: -XSL - Внешние запросы Xpath к файлу свойств

контекст весна файл:

<int-xml:xslt-transformer id="xsltTransformer" input-channel="bulkStringInboundChannel" 
    output-channel="toBridgeChannel" result-type="StringResult" **transformer-factory-class="net.sf.saxon.TransformerFactoryImpl"** 
    xsl-resource="classpath:/META-INF/spring/integration/intake/intake-flow/bulkTransformer.xsl" /> 

XSL таблицы стилей:

<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
.... 
<xsl:variable name="props" select="document('prop.xml')" /> 
<xsl:value-of select="f:getProperty('query1')"/> 
.... 

Prop.xml:

query1 = /Batch/RequestID/text() 

Описание ошибки: XPST0003: XPath Ошибка синтаксиса в полукокса 23 по линии 30 в {е: GetProperty («Query1»)}: XTSE0650: Нет шаблона не существует имени GetProperty

теперь у меня есть два вопросы- первую очередь, как я получаю избавиться от этих ошибок?

Во-вторых, могу ли я хранить запросы xPath в файлах свойств? Сообщение описывает метод, чтобы прочитать файл свойств и использовать значение, относящееся к его ключу. Тем не менее, я думаю, что getProperty просто напечатает текстовый эквивалент запроса вместо того, чтобы оценивать запрос и обрабатывать его. Есть ли способ достичь этого?

Post - How to read a .properties file inside a .xsl file?

ответ

0

Я не могу помочь вам с весной стороны вопроса, но, как для стороны саксонской, вы можете вызвать метод System.getProperty JDK(), используя такой код:

<xsl:value-of select="System:getProperty('user.dir')" xmlns:System="java:java.lang.System"/> 

Для расширяемости Java требуется Saxon-PE или выше.

Если значение свойства, которое вы прочитали, является выражением XPath, вы можете выполнить его с помощью инструкции XSLT 3.0 xsl: evaluation, которая также требует Saxon-PE или выше.