"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية إجراء بحث XPath غير حساس لحالة الأحرف باستخدام وظيفة يحتوي على؟

كيفية إجراء بحث XPath غير حساس لحالة الأحرف باستخدام وظيفة يحتوي على؟

تم النشر بتاريخ 2024-11-12
تصفح:418

How to Perform Case-Insensitive XPath Searching with ContainsIn Function?

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");
يسمح هذا بـ مطابقة غير حساسة لحالة الأحرف لأي سلسلة بحث دون معرفة مسبقة بالأبجدية. ومع ذلك، يواجه كلا الخيارين علامات الاقتباس المفردة في سلاسل البحث.

بيان الافراج أعيد طبع هذه المقالة على: 1729588881 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3