2009-10-26 9 views
21

Sto cercando di ottenere una query XPath utilizzando la funzione XPath minuscole o uppper caso, ma sembrano non funzionare di selenio (dove ho testare il mio xpath prima di applicarlo).Problema con le funzioni XPath maiuscole e minuscole di selenio IDE

Esempio che non funziona: testo //*[.=upper-case('some ')]

non ho alcun problema individuando i nodi di cui ho bisogno in percorso complesso e anche utilizzando le funzioni aggregate, come finché non uso la maiuscola e la minuscola.

Qualcuno ha riscontrato questo prima? Ha senso?

Grazie.

+0

E 'bene notare che per le persone che lavorano ai documenti XSL, usando CSS' proprietà del testo risolve i problemi di trasformazione come capitalizzare. Per maggiori informazioni: http://www.w3schools.com/css/pr_text_text-transform.asp – sid3k

risposta

48

upper-case() e lower-case() sono funzioni XPath 2.0. È probabile che la tua piattaforma supporti solo XPath 1.0.

Prova:

translate('some text','abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ') 

che è il modo XPath 1.0 per farlo. Sfortunatamente, ciò richiede la conoscenza dell'alfabeto utilizzato dal testo. Per l'inglese semplice, quanto sopra probabilmente funziona, ma se ti aspetti caratteri accentati, assicurati di aggiungerli alla lista.

+0

Infatti, grazie! Sfortunatamente questo non è "pulito" ... :( (complicherà ancora di più alcune delle nostre già complesse definizioni DSL in GenericFixture per Fitnesse) Chiunque ha idea di quando selenio RC o Firefox (I don 'qual è il responsabile) adotterà XPath 2.0? – Aristotelis

+0

Mi dispiace, ma non ne ho idea. So che non è pulito, ma è il migliore che otterrai con XPath 1.0. – Tomalak

+3

@Aristotelis: Sì, questo sembra non è chiaro, ma ha una sua ragione: XML è Unicode, non ASCII/Inglese. Quindi, per la capitalizzazione ha bisogno di conoscere le regole di confronto. La conoscenza delle collazioni è stata aggiunta a XPath 2.0. –

1

Se avete intenzione di bisogno maiuscolo in più posti nel vostro XSLT, è possibile definire variabili per il minuscolo e maiuscolo e poi usarli nella vostra funzione translate ovunque. Dovrebbe rendere il tuo xslt molto più pulito.

Esempio a XSL/XPATH : No upper-case function in MSXML 4.0 ?

Problemi correlati