2009-12-27 17 views
23

Ich benutze Firefox XPath-Checker und kann nicht die Syntax richtig. Ich habe einen Link:XPath: Wie machen Sie einen kleinen Anruf in XPath

<a>LinkName</a> 

und ich versuche zu tun:

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

aber ich habe einen Syntaxfehler. Was mache ich falsch?

Dank

Antwort

42

Es gibt keine Funktion lower-case in XPath 1.0 genannt, die die Version von XPath in Firefox verwendet wird.

Sie müssen stattdessen die hässliche translate Funktion verwenden: -

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

... aber natürlich müssen Sie diese verlängern, wenn Sie Abdeckung eines größeren Zeichensatzes benötigen.

+1

Toller Hinweis - nicht nur für Firefox :) –

+1

Hinweis: "Übersetzen" sollte niedriger sein. Hier –

+3

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