Eksperymentuję z problemem z operatorem <
na ciągach w Xpath 1.0.Jak porównać ciągi z Xpath 1.0?
Ten prosty Xpath wyrażenie
'A' < 'B' (or the equivalent 'A' < 'B')
nie oceniać true w moim biegu XSLT na libxslt (który jest XSLT 1.0 silnik).
Sprawdziłem Szpieg XML, który pozwala na testowanie wyrażeń Xpath zarówno w wersji 1.0, jak i 2.0, i na pewno w Xpath 2.0 ocenia się na true
, ale w Xpath 1.0 wartość ta wynosi false
!
Czy to błąd w Xpath 1.0?
Jakie inne wyrażenie należy użyć do porównania dwóch ciągów/znaków w kolejności alfabetycznej? Zauważ, że funkcja compare() nie działa, ponieważ jest to funkcja XSLT 2.0.
Dzięki Michael - ładne kompaktowe rozwiązanie. Co do XSLT 2.0, co mnie powstrzymuje - 'libxslt' to - jest to silnik używany przez' php 5' i nie mogę tego zmienić. Być może w przyszłości mój serwer hostingowy użyje wersji php, która używa silnika XSLT 2.0 - kiedy taki istnieje. Naprawdę chciałbym robić to wszystko w XSLT 2.0 oczywiście - faktycznie zrobiłem to dla rozwoju, a potem musiałem wszystko przepisać. Zakładam ten sam powód, dla którego nie przechodzę do XSLT 2.0 dla dużej liczby programistów XSLT. – Maestro13
@ Maestro13: Zobra obsługuje XPath 2.0 i jest dostępny jako rozszerzenie PHP, patrz: http://www.ibm.com/developerworks/xml/library/x-zorba/index.html - Jeśli chodzi o PHP, możesz również [zarejestruj funkcje PHP] (http://php.net/manual/en/domxpath.registerphpfunctions.php) jak 'strcmp' do użycia z twoim xpath. – hakre
@hakre dzięki za informację - Sprawdzę z moim dostawcą usług hostingowych, czy mogą aktywować Zobra. A tak, alternatywą byłoby zarejestrowanie niestandardowej funkcji php i użycie jej w xslt - w ogniu walki XSLT zupełnie o tym zapomniałem. – Maestro13