대소문자를 구분하지 않는 XPath contains() 함수
질문:
contains() 함수를 사용하여 텍스트 노드를 검색할 때 XPath 쿼리에서 대소문자를 구분할 수 있나요?
답변:
예 , 다음 기술을 사용하여 대소문자를 구분하지 않는 XPath 쿼리가 가능합니다.
translate() 및 contains() 사용:
이 방법에는 contains() 함수를 사용하기 전에 노드 값과 검색 문자열을 소문자로 변환하는 작업이 포함됩니다.
/html/body//text()[ contains( translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'test' ) ]
호스트 언어를 사용하여 동적 XPath 표현식 작성:
가능하다면 JavaScript와 같은 호스트 언어를 사용하여 동적 XPath 표현식을 생성하십시오.
<code class="javascript">function xpathPrepare(xpath, searchString) { return xpath.replace("$u", searchString.toUpperCase()) .replace("$l", searchString.toLowerCase()) .replace("$s", searchString.toLowerCase()); } xp = xpathPrepare("//text()[contains(translate(., '$u', '$l'), '$s')]", "Test");</code>
이 방법은 검색 문자열에서 필요한 문자만 번역하므로 어떤 경우에도 적합합니다. 검색어.
고려 사항:
위 내용은 XPath 쿼리는 contain()을 사용하여 대/소문자를 구분하지 않을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!