2011-09-22 4 views
5

Ecco il codice che sto utilizzando:Accesso HTML in Nokogiri

location = block.xpath("*/img") 
puts location 

E questo uscite:

<img src="/images/p.gif" height="1" width="0"> 

Quello che voglio fare è ottenere l'attributo width fuori del html, ma non riesco a capire anche quello. Penso di aver bisogno di inserire ['width'] da qualche parte nel mio codice, e ho provato a seguire vari esempi online ma non sono riuscito a farlo funzionare.

risposta

6

Dai un'occhiata alla sintassi xpath da questo XPath Tutorial.

Provare block.at_xpath("*/img")["width"] o */img/@width se è presente un solo elemento.

+0

Credo che si intende '*/img/@ width'. –

+0

Oops. L'ho riparato. – aus

+0

@Micheal, sì con quella piccola modifica ha funzionato alla grande. Penso che abbia anche un paren in più nel primo esempio. –

12

selettori CSS tendono ad essere più semplice e più leggibile:

puts block.at('img')[:height] 
+2

Oppure 'block.at_css ('img') [: height]' o semplicemente 'block.at ('img') [: height]'. – Phrogz

+0

Sì! Non riuscivo a ricordare quale metodo fosse stato chiamato. Post aggiornato. –