2010-09-27 61 views
3

Currnetly我當我使用角度來說,Hpricot我發現哪裏downcase寶石內的結果讓我可以把我所有的searchs小寫做如何創建nokogiri不區分大小寫的文本*搜索?

words = [] 
words << "philip morris" 
words << "Philip morris" 
words << "philip Morris" 
words << "Philip Morris" 
for word in words 
    doc.search("[text()*='#{word}']") 
end 

,但是引入nokogiri已經很難找到,其中一個甚至可以去做。有沒有人知道一種方法來做到這一點? 非常感謝您的時間

回答

3

lower-case XPath函數不可用,但您可以使用translate XPath 1.0函數將文本轉換爲小寫,例如,爲英文字母:

translate(text(),'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz') 

我不能似乎結合了*=運營商使用這一點,但你可以用contains做一個字符串搜索代替,使完整的東西:

doc.search("//*[contains(translate(text(),'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'philip morris')]") 
+0

謝謝你這麼多:)完美的作品! – Davinj 2010-09-29 03:18:33