XPath غير حساس لحالة الأحرف يحتوي على
في XPath، تتحقق الدالة يحتوي على () مما إذا كانت سلسلة واحدة تحتوي على سلسلة أخرى، مثل هذا:/html/body//text()[contains(.,'test')]
/html/body//text()[contains(.,'test')]هذا حساس لحالة الأحرف، مما يعني أنه لن يتطابق مع "اختبار"، "اختبار" أو "TesT". لتمكين عدم حساسية حالة الأحرف، جرب هذا الحل البديل:/html/body//text()[ يتضمن( ترجمة (.، 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'، 'abcdefghijklmnopqrstuvwxyz')، 'امتحان' ) ]
/html/body//text()[contains(.,'test')]يؤدي هذا إلى استبدال كل حرف كبير بنظيره الصغير قبل التحقق من التطابقات. ومع ذلك، فهو يقتصر على مجموعات الأحرف المعروفة.هناك طريقة بديلة تستفيد من 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");
يسمح هذا بـ مطابقة غير حساسة لحالة الأحرف لأي سلسلة بحث دون معرفة مسبقة بالأبجدية. ومع ذلك، يواجه كلا الخيارين علامات الاقتباس المفردة في سلاسل البحث. تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3