2009-10-26 12 views
21

Ich versuche, eine Xpath-Abfrage mit der Xpath-Funktion Kleinbuchstaben oder Uppper-Fall, aber sie scheinen nicht in Selen arbeiten (wo ich meine testen XPath bevor ich es anwende).Problem mit Groß-und Kleinbuchstaben Xpath-Funktionen in Selen IDE

Beispiel, das nicht funktioniert: //*[.=upper-case('some Text ')]

Ich habe kein Problem Lokalisieren der Knoten I in komplexen Weg benötigen und auch aggregierte Funktionen, wie solange ich nicht Groß- und Kleinschreibung verwende.

Hat jemand das schon einmal erlebt? Macht das Sinn?

Danke.

+0

Es ist gut, dass für die Menschen, Dokumenten arbeiten auf XSL zu beachten, löst Probleme wie Kapitalisierung Transformation CSS‘Texteigenschaften verwenden. Um mehr Informationen zu erhalten: http://www.w3schools.com/css/pr_text_text-transform.asp – sid3k

Antwort

48

upper-case() und lower-case() sind XPath 2.0-Funktionen. Vermutlich unterstützt Ihre Plattform nur XPath 1.0.

Versuchen:

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

, die die XPath 1.0 Art und Weise ist, es zu tun. Leider erfordert dies die Kenntnis des Alphabets, das der Text verwendet. Für normales Englisch funktioniert das oben Gesagte wahrscheinlich, aber wenn Sie akzentuierte Zeichen erwarten, stellen Sie sicher, dass Sie sie der Liste hinzufügen.

+0

In der Tat, danke! Leider ist das überhaupt nicht "sauber" ... :( (es wird noch komplizierter einige unserer bereits komplizierten DSL-Definitionen in GenericFixture für Fitnesse komplizieren.) Jeder hat eine Idee, wann selen RC oder Firefox (ich don Wer ist der Verantwortliche, wird XPath 2.0 übernehmen? – Aristotelis

+0

Es tut mir leid, aber ich habe keine Ahnung. Ich weiß, es ist nicht sauber, aber es ist das Beste, was Sie mit XPath 1.0 bekommen. – Tomalak

+3

@Aristotelis: Ja, das scheint um nicht klar zu sein, aber es hat seinen Grund dahinter. XML ist Unicode, nicht ASCII/Englisch. Also, für die Großschreibung muss es über Kollationen wissen. Collations Wissen wurde XPath 2.0 hinzugefügt. –

1

Wenn Sie an mehreren Stellen Großbuchstaben in Ihrem XSLT benötigen, können Sie Variablen für den Klein- und Großbuchstaben definieren und sie dann überall in Ihrer Übersetzungsfunktion verwenden. Es sollte Ihr xslt viel sauberer machen.

Beispiel bei XSL/XPATH : No upper-case function in MSXML 4.0 ?

Verwandte Themen