본문 바로가기

프로그래밍 관련

xpath 함수로 문자열 검색

프로그램을 하다 보면 데이터 그리드 같은 곳에 xpath를 적용시켜 내용을 보여 주는 경우가 있다
그때 특정 컬럼의 값을 검색하는 방법으로 어떤 방법들을 쓰시는지..
현재 trustForm이라는 것을 사용해 개발 작업 중인데, 조회된 리스트를 다시 검색하는 경우 여러 사람들이 쿼리를 다시 해오는 경우가 있다. 해서 xpath 함수로 처리해 보았다

datagrid1.nodeset = "/root/main/test"

이런식으로 바인딩을 할 경우가 있을때
/root/main/test/name 의 값이 'tester'를 검색 하기 위한 방법으로 xpath 함수를 사용해 보자

tmpStr = 'tester';
datagrid1.nodeset = "/root/main/test[contains(name, '" + tmpStr +"')=true()]";

이런 방법이 있을 수 있겠다.
다른 작업 없이 바로 검색어로 검색이 된 내용만 보일 것이다.
contains() 함수와 true() 함수로 처리.. ^^

헌데 이 방법에 약각의 문제가 있다.
대소문자를 구별한다는 문제...
만약 대소문자 구별 없이 검색을 하고 싶은 경우 한가지 처리를 더 해야 한다

tmpStr =  tmpStr.toUpperCase();
datagrid1.nodeset = "/root/main/test[contains(translate(name, 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'), '" + tmpStr +"')=true()]";

translate()로 대소문자 변환 후 검색.. ^^