2014-06-28 10 views
5

Więc jeśli mam ten kawałek koduWybierz elementem o wartości atrybutu z XPath w Nokogiri

<body> 
    <div class="red"> 
    <a href="http://www.example.com>Example</a> 
    </div> 
</body> 

wiem, że chcesz uzyskać element z atrybut „class” i wartość „czerwony”, ale don nie wiem, gdzie się znajduje.

Jeśli użyłem XPath, czy ten fragment kodu jest prawidłowy?

dir = "http://www.domain.com" 
doc = Nokogiri::HTML(open(url)) 
doc.xpath('.//*[class="red"]') 

Po prostu się uczę, więc nie wiem, czy coś jest nie tak. Nie mogę sprawić, żeby to działało. Dzięki.

Edit: = Teraz to działa)

doc.xpath('//*[@class="red"]') 
+1

powinno to być @class. Początkowa * kropka * w tym przypadku nie ma sensu. –

+0

http://stackoverflow.com/questions/2901241/how-to-access-attributes-using-nokogiri – dmitry

Odpowiedz

9

Zmień klasa @class. Usuń kropkę na początku. Wtedy to zadziała.