Как обрабатывать переменную не определена проблема - PullRequest
1 голос
/ 25 апреля 2019

Мне нужно установить значение для переменной, которая будет хранить количество узлов для определенного xpath, которые принимают некоторое условие.После этого мне нужно использовать это значение.Проблема в том, что если условие никогда не принимается, переменная не будет определена, и я получаю сообщение об ошибке, когда пытаюсь его использовать.

<xsl:variable name="Bondscounter">
        <xsl:for-each select="//Bonds_RepoSecuSched_List/Bonds_RepoSecuSched[ISINCode != ''] ">
            <xsl:value-of select="position()" />
        </xsl:for-each>
    </xsl:variable>

Как я могу обойти эту проблему?

1 Ответ

1 голос
/ 25 апреля 2019

В XSLT 2.0 ваша переменная будет установлена ​​на узел документа с одним дочерним текстовым узлом со строковым значением объединения этих целых чисел от 1 до количества элементов, выбранных вашим XPath 1 & mdash ; вероятно, не то, что вы хотите.

Если вы хотите "количество узлов для определенного xpath", просто используйте функцию count() напрямую:

<xsl:variable name="Bondscounter"
     select="count(//Bonds_RepoSecuSched_List/Bonds_RepoSecuSched[ISINCode!=''])/>

Что касается переменной, которая не определяется, такая проблема не зависит от значения переменной. У вас может быть проблема с областью видимости, но мы не можем оценить ее без дополнительного контекста.

1 Спасибо Майклу Кей за исправление.

...