Ich habe ein Problem mit dem <
-Operator für Strings in Xpath 1.0.Wie Strings mit Xpath 1.0 zu vergleichen?
Diese einfache XPath-Ausdruck
'A' < 'B' (or the equivalent 'A' < 'B')
nicht wahr in meinem Xslt Lauf in libxslt (die eine XSLT 1.0 Engine) hat zu bewerten.
Ich habe XML Spion eingecheckt, was das Testen von Xpath-Ausdrücken sowohl in 1.0 als auch in 2.0 ermöglicht, und in Xpath 2.0 wird true
ausgewertet, aber in Xpath 1.0 wird false
ausgewertet!
Ist das ein Fehler in Xpath 1.0?
Welchen anderen Ausdruck sollte ich verwenden, um zwei Zeichenfolgen/Zeichen für ihre alphabetische Reihenfolge zu vergleichen? Beachten Sie, dass die Funktion compare() nicht funktioniert, da dies eine XSLT 2.0-Funktion ist.
Danke Michael - schöne kompakte Lösung. Was XSLT 2.0 betrifft, was mich zurückhält - "libxslt" ist - das ist die Engine von 'php 5' und ich kann das nicht ändern. Vielleicht wird mein Hosting-Dienstleister in Zukunft eine PHP-Version verwenden, die eine XSLT 2.0-Engine verwendet - wenn es eine gibt. Ich hätte das natürlich gerne in XSLT 2.0 gemacht - eigentlich tat ich das für die Entwicklung und musste dann alles neu schreiben. Ich gehe davon aus, dass der gleiche Grund, warum ich nicht zu XSLT 2.0 wechselte, für eine große Anzahl von XSLT-Entwicklern gilt. – Maestro13
@ Maestro13: Zobra unterstützt XPath 2.0 und ist als PHP-Erweiterung verfügbar, siehe: http://www.ibm.com/developerworks/xml/library/x-zorba/index.html - Was PHP betrifft, können Sie auch [PHP-Funktionen registrieren] (http://php.net/manual/de/domxpath.registerphpfunctions.php) wie 'strcmp', um mit Ihrem xpath verwendet zu werden. – hakre
@hakre Danke für die Info - Ich werde mit meinem Hosting-Provider überprüfen, ob sie Zobra aktivieren können. Und eine Alternative wäre, eine benutzerdefinierte PHP-Funktion zu registrieren und diese im XSLT zu verwenden - in der Hitze des XSLT-Kampfes habe ich das total vergessen. – Maestro13