2009-10-26 6 views
21

xpath 함수를 소문자 또는 uppper-case로 사용하는 xpath 쿼리를 가져 오려고하지만 셀렌에서 작동하지 않는 것처럼 보입니다. xpath를 적용하기 전에). 작동하지 않는셀레늄 IDE의 대문자 및 소문자 xpath 함수의 문제

예 : //*[.=upper-case('some 텍스트 ')]

나는 아무 문제, 나는 복잡한 경로에 필요한 노드의 위치, 심지어 집계 함수를 사용하여이 없다 내가 대문자와 소문자를 사용하지 않는 한 오래.

이전에이 문제가 발생 했습니까? 그것은 의미가 있습니까?

감사합니다.

+0

그것은 CSS '텍스트 속성을 사용하여, XSL 문서 작업을 사람들을 위해 점에 유의하는 것이 좋다에서 활용 같은 변환 문제를 해결합니다. 자세한 정보를 얻으려면 : http://www.w3schools.com/css/pr_text_text-transform.asp – sid3k

답변

48

upper-case()lower-case()은 XPath 2.0 함수입니다. 플랫폼이 XPath 1.0 만 지원할 가능성이 있습니다.

시도 :

그것을 할 수는 XPath 1.0 방법입니다
translate('some text','abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ') 

. 불행하게도, 이것은 텍스트가 사용하는 알파벳 지식을 필요로합니다. 평범한 영어의 경우 위의 코드가 작동하지만 악센트 부호가있는 문자가 필요한 경우 목록에 추가해야합니다.

+0

사실 고마워요! 불행히도 이것은 전혀 '깨끗한'것이 아닙니다. : ( (GenericFixture의 Fitnessple에 대한 우리의 이미 복잡한 DSL 정의를 더 복잡하게 만듭니다.) 언제든지 셀레늄 RC 또는 파이어 폭스 XPath 2.0을 채택 할 것인가? – Aristotelis

+0

미안하지만 잘 모르겠다. 깨끗하지는 않지만, XPath 1.0을 사용하면 가장 좋다. – Tomalak

+3

@Aristotelis : 예, 이것은 보인다. XML은 ASCII/영어가 아닌 유니 코드이므로, 대문자 사용시 데이터 정렬에 대해 알아야하며, Collations 지식이 XPath 2.0에 추가되었습니다. –

1

xslt의 여러 위치에서 대문자를 필요로하는 경우 소문자와 대문자의 변수를 정의한 다음 모든 곳에서 변환 함수에 사용할 수 있습니다. 그것은 당신의 xslt 훨씬 깨끗하게해야합니다.

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