2013-01-20 85 views
2

我試圖擺脫文檔中的所有data-屬性。如果我的文檔看起來像如何使用Nokogiri進行通配符搜索?

<div id="person" data-name="John Smith" data-age="32" data-location="UK">...</div> 

我想帶出的數據見好就收

<div id="person">...</div> 

我已經嘗試了很多組合,並且可以在至少得到的東西像data-name

doc.xpath('//@data-name') 

但有時候,會有更多的data-?屬性,我想避免手動將它們全部添加。 This SO answer is close,但它不適合我返回任何東西,當我嘗試

doc.xpath("//*[@*[contains(., 'data-')]]") 

回答

1

要選擇他的名字開頭的所有屬性data-

//@*[starts-with(name(), 'data-')] 
1

這個問題的答案,你發現這是嵌套太深,試試這樣:

doc.xpath('//*[contains(., "data-")]')

+0

的作品,謝謝 – jbnunn

+0

嗯,這也將選擇'數據'在文本,或ATT元素兒童筆記,孩子文本ributes等 – pguardiario

+0

你是對的 - 它得到了所有的數據 - 但我沒有考慮到這種邊緣情況,謝謝 – jbnunn

相關問題