12 Aralık 2011, PAZARTESİ
duyarsız xpath içerir() durum mümkün mü?
Eğer nodeValue belirli bir dize içeriyorsa, DOM ve maaşımın tüm textnodes çalışan aştım.
/html/body//text()[contains(.,'test')]
Bu büyük / küçük harfe duyarlıdır. Ancak, ben de*, TEST
*4 TesT
oder yakalamak istiyor. Bu mümkün XPath (JavaScript) ile mi?
CEVAP
12 Aralık 2011, PAZARTESİ
Evet. Mümkün, ama güzel değil.
/html/body//text()[
contains(
translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'),
'test'
)
]
Eğer yapabilirsen, başka bir anlamı ile ilginizi çeken metin bölümlerini işaretle, belirli bir sınıf vardır <span>
içine yerleştirme gibi.
Eğer bu mümkün değilse, uygun bir XPath ifadesi binası ile size yardımcı JavaScript olabilir:
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");
// -> "//text()[contains(translate(., 'TEST', 'test'), 'test')]"
(@KirillPolishchuk's answer - tabii ki sadece aslında sen bu karakterleri çevirmek için ihtiyacımız çaktırmaaramaiçin)
Bunu Paylaş:
XPath içerir nasıl kullanılır() burada...
Durum düzenli javascript duyarsız...
't düğüm ile kullanıldığında işe ...
özel durum "ben İllegalStateExcep...
İçerir " nitelikler;deneme" se...