Sto riscontrando un problema con l'operatore <
su stringhe in Xpath 1.0.Come confrontare le stringhe con Xpath 1.0?
Questa semplice espressione XPath
'A' < 'B' (or the equivalent 'A' < 'B')
non ha valutato a vero nella mia corsa XSLT in libxslt (che è un XSLT 1.0 del motore).
ho controllato in XML Spy, che consente espressioni test Xpath sia in 1.0 e 2.0, e abbastanza sicuro, in XPath 2.0 si restituisce true
, ma in XPath 1.0 si valuta a false
!
Si tratta di un bug in Xpath 1.0?
Quale altra espressione dovrei usare per confrontare due stringhe/caratteri per il loro ordine alfabetico? Notare che la funzione compare() non funzionerà, poiché questa è una funzione XSLT 2.0.
Grazie Michael - bella soluzione compatta. Per quanto riguarda XSLT 2.0 ciò che mi trattiene - 'libxslt' è - questo è il motore usato da' php 5' e non posso cambiarlo. Forse in futuro il mio hosting servirà a utilizzare una versione php che utilizza un motore XSLT 2.0, quando ce n'è uno. Mi piacerebbe davvero fare tutto questo in XSLT 2.0 ovviamente - in effetti l'ho fatto per lo sviluppo e poi ho dovuto riscrivere tutto. Presumo la stessa ragione per non passare alle prese XSLT 2.0 per un gran numero di sviluppatori XSLT. – Maestro13
@ Maestro13: Zobra supporta XPath 2.0 ed è disponibile come estensione PHP, vedere: http://www.ibm.com/developerworks/xml/library/x-zorba/index.html - Per quanto riguarda PHP è possibile anche [register PHP functions] (http://php.net/manual/en/domxpath.registerphpfunctions.php) come 'strcmp' da usare con xpath. – hakre
@hakre grazie per le informazioni - controllerò con il mio fornitore di servizi di hosting se possono attivare Zobra. E sì un'alternativa sarebbe quella di registrare una funzione php personalizzata e usarla nella xslt - nel calore della battaglia XSLT l'ho completamente dimenticato. – Maestro13