"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Contains() 함수를 사용하여 XPath에서 대소문자를 구분하지 않는 검색을 수행하는 방법은 무엇입니까?

Contains() 함수를 사용하여 XPath에서 대소문자를 구분하지 않는 검색을 수행하는 방법은 무엇입니까?

2024-11-07에 게시됨
검색:848

How to Achieve Case-Insensitive Searching in XPath Using the contains() Function?

대소문자를 구분하지 않는 XPath contain() 함수

XPath에서 contain() 함수는 대소문자를 구분합니다. 그러나 이 제한 사항을 해결할 수 있는 방법이 있습니다.

방법 1: 문자 번역

이 방법에는 하위 문자열을 확인하기 전에 문자를 소문자 또는 대문자로 변환하는 작업이 포함됩니다.

/html/body//text()[
  contains(
    translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'),
    'test'
  )
]

이것은 하위 문자열 "test"를 확인하기 전에 텍스트의 모든 대문자를 소문자로 변환합니다.

방법 2: 동적 XPath 표현식

JavaScript와 같은 스크립팅 언어를 사용하면 대소문자를 구분하지 않는 동적 XPath 표현식을 구성할 수 있습니다.

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");

이것은 자리 표시자를 대체합니다. 검색 문자열의 대문자, 소문자 및 소문자 버전이 있는 XPath 표현식에서.

추가 고려 사항

  • 두 방법 모두 알파벳이 알려져 있다고 가정합니다.
  • 요소 텍스트에 작은따옴표가 포함될 수 있는 경우 XPath 구문 오류를 방지하기 위해 이스케이프 처리하세요.
  • 방법 2를 사용하는 경우 검색 문자열에서 이스케이프된 따옴표를 처리하세요.
릴리스 선언문 이 글은 1729589295에서 재인쇄되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3