Я пытаюсь настроить условие, которое
проверяет значение текущего узла в
для каждого, но я делаю что-то
неправильно:
Первое, что неправильно, это синтаксис :
.[='1112']
Здесь две вещи не так :
Внутри [и] предиката нет : оператору "=" требуется два аргумента, но предоставляется только один.
.[x = y]
- все еще недопустимый синтаксис, хотя предикат в порядке . Это должно быть указано как:
само :: узел () [состояние]
Вторая вещь в предоставленном коде , которую можно улучшить , это инструкция <xsl:for-each>
, которая вообще не нужна; Достаточно одного выражения XPath.
Для суммирования , одно из возможных выражений XPath, которое оценивается в требуемое логическое значение:
/books/book[. = '1112']
Если действительно необходимо проверить условие внутри инструкции <xsl:for-each>
, то я бы использовал правильное выражение XPath:
. = '1112'
Приведенное выше представляет собой сравнение строк, и может не иметь значения true()
, если вокруг имеются пробелы. Поэтому численное сравнение может быть лучше :
. = 1112