2009-12-27 17 views
23

Uso il correttore XPath di Firefox e non riesco a ottenere la sintassi corretta. Ho un link:XPath: Come si fa una chiamata minuscola in xpath

<a>LinkName</a> 

e cerco di fare:

//a[lower-case(child::text())='linkname'] 

ma ho un errore di sintassi. Che cosa sto facendo di sbagliato?

Grazie

risposta

42

Non esiste una funzione chiamata lower-case in XPath 1.0, che è la versione di XPath utilizzato in Firefox.

è necessario utilizzare la funzione di brutto translate invece: -

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

... ma naturalmente si avrebbe bisogno di estendere questo se avete bisogno di una copertura di un personaggio-serie più ampia.

+1

Grande suggerimento - non solo applicabile a Firefox :) –

+1

Nota: "translate" deve essere di minore importanza. –

+3

Ecco la tabella ANSI completo: tradurre (% s, 'ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞŸŽŠŒ', 'abcdefghijklmnopqrstuvwxyzàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿžšœ') –