2009-08-05 8 views

Répondre

14

Chris, essayer et laissez-moi savoir si cela fonctionne:

doc = Nokogiri::HTML(page) 
el = doc.xpath("//div[@id='spam[500]']").first 

Le problème est que vous ne pouvez pas y accéder via CSS (même dans le navigateur). Essayez de définir certains attributs CSS pour "spam [500]" et ils ne seront pas appliqués. Vous pouvez cependant accéder via xpath, comme indiqué ci-dessus.

+0

Cela fonctionne. Merci. –

1

Le vrai problème est que les caractères [et] sont illégaux dans un attribut id HTML4 (ou XML) - regardez ce qui suit:

http://www.w3.org/TR/html401/types.html#type-name

(pour la définition normative de l'attribut id regardez www.w3.org//TR/html401/struct/global.html#adef-id)

1

vous pouvez aussi le faire de cette façon

el = doc.xpath("id(spam[500])").first 

pour les éléments ha ving id vous pouvez les appeler directement via id car c'est toujours unique.

Pour trouver des xpaths, veuillez ajouter un plugin 'xpath checker' à firefox. Cela aide beaucoup et très facile

Questions connexes