Я экспериментирую с проблемой с оператором <
по строкам в Xpath 1.0.Как сравнить строки с Xpath 1.0?
Это простое выражение Xpath
'A' < 'B' (or the equivalent 'A' < 'B')
не вычисляться правда в моем XSLT работать в LibXSLT (который является XSLT 1.0 двигатель).
Я проверил в XML Spy, который позволяет тестировать выражения Xpath как в 1.0, так и 2.0, и, конечно же, в Xpath 2.0 он оценивается как true
, но в Xpath 1.0 он оценивается как false
!
Это ошибка в Xpath 1.0?
Какое другое выражение следует использовать для сравнения двух строк/символов для их алфавитного порядка? Обратите внимание, что функция compare() не будет работать, так как это функция XSLT 2.0.
Спасибо Michael - приятное компактное решение. Что касается XSLT 2.0, то что меня удерживает - 'libxslt' is - это движок, используемый' php 5', и я не могу его изменить. Возможно, в будущем мой хостинг-провайдер будет использовать версию php, которая использует движок XSLT 2.0 - когда он есть. Я действительно хотел бы сделать все это в XSLT 2.0, конечно, на самом деле я сделал для развития, а затем пришлось переписать все. Я предполагаю, что одна и та же причина не для перехода на XSLT 2.0 для большого числа разработчиков XSLT. – Maestro13
@ Maestro13: Zobra поддерживает XPath 2.0 и доступен как расширение PHP, см. Http://www.ibm.com/developerworks/xml/library/x-zorba/index.html. Что касается PHP, вы можете также [зарегистрировать функции PHP] (http://php.net/manual/en/domxpath.registerphpfunctions.php), как 'strcmp', который будет использоваться с вашим xpath. – hakre
@hakre спасибо за информацию - я поеду с моим провайдером хостинга, смогут ли они активировать Zobra. И да, альтернативой было бы зарегистрировать пользовательскую функцию php и использовать ее в xslt - в разгар битвы XSLT я полностью забыл об этом. – Maestro13