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