」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何使用 contains() 函數在 XPath 中實作不區分大小寫的搜尋?

如何使用 contains() 函數在 XPath 中實作不區分大小寫的搜尋?

發佈於2024-11-07
瀏覽:639

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

不區分大小寫的 XPath contains() 函數

在 XPath 中,contains() 函數區分大小寫。但是,有一些方法可以解決此限制。

方法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