2014-02-14 2 views
0

[UPDATE]: Я не смог решить проблему ниже и должен был полностью изменить условие if, чтобы удовлетворить мои потребности. Поскольку код XSLT записывался внутри веб-приложения, которое имело множество ограничений, таких как я не смог получить входной файл XML или выходной файл XSLT и т. Д., Что помешало здоровым решениям и предложениям других пользователей.xslt содержит функцию для проверки строки

[Модератор]: Дайте мне знать, что я могу сделать с этим вопросом в SO, чтобы он служил лучше всего для всех.

Я пытаюсь проверить конкретную строку, используя XSLT, содержит функцию (которая не работает). Ниже приведены мои результаты теста с наблюдением

Я получаю текст, который мне нужно протестировать с помощью этого кода.

<xsl:template name="TESTDATA_here"> 
    <xsl:call-template name="TESTDATA_here"> 
     <xsl:with-param name="TESTDATA_here" select="nodeName/TESTDATA_here"/> 
    </xsl:call-template> 
</xsl:template> 

С выше коде, я получаю ## TESTDATE_here ## в качестве переменной, которая при выполнении печатает фактический текст. Пока работает отлично. Я тогда назначая вывод переменной

<xsl:variable name="testdata_here">##TESTDATA_here##</xsl:variable> 

Я также попытался с помощью

<xsl:variable name="testdata_here" select="##TESTDATA_here##" /> 

Но я предполагаю, что описанный выше метод не является правильным, как он считает ## TESTDATA_here ## в виде строки и а не как переменная.

Теперь я хочу, чтобы проверить, содержит(), так что я попытался ниже код,

<xsl:if test="contains($testdata_here, 'T')"> 
This does not work :(
</xsl:if> 

Можно ли указать, что неправильно с кодом?

+0

Это очень запутанное. Почему бы вам не начать с начала (откуда эта «конкретная строка»), переместиться в середину (что вы хотите знать об этой строке) и завершить с окончанием (что вы хотите сделать как приводят к каждому случаю). –

+0

Эй, @ michael.hor257k, я работаю в веб-приложении, которое использует xslt для получения данных из представлений данных. Первая часть кода работает нормально, и я получаю требуемый текст в моей переменной ## TESTDTA_here ##. Однако проблема в том, что я пытаюсь назначить ее моей переменной xsl, поэтому я могу использовать ее внутри contains(). – noobcode

+0

Ну, проблема ** здесь ** заключается в том, что я понятия не имею, каков ваш вопрос ... –

ответ

0

Символьная строка должна быть в одинарных кавычках, например:

<xsl:variable name="testdata_here" select="'##TESTDATA_here##'" /> 
+0

Я пробовал вышеуказанный код, но он не работал. – noobcode

+0

Можете ли вы разместить свой входной XML, XSLT и ожидаемый выходной XML? –

+0

У меня нет ввода xml, так как я пишу свой xslt-код в платном веб-приложении. Я хочу, чтобы иметь возможность выполнить мое условие xslt if // текст – noobcode

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