Pregunta

Tengo un elemento html como:

<div id="spam[500]">

Quiero buscar este elemento por id, pero parece que nokogiri se está confundiendo con []. Estoy intentando:

doc.css("#spam[#{eggs.id}]")

pero fue en vano.

¿Fue útil?

Solución

Chris, prueba esto y avísame si funciona:

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

El problema es que no puedes acceder a través de CSS (incluso en el navegador). Intente configurar algunos atributos CSS para " spam [500] " y no se aplicarán Sin embargo, puede acceder a través de xpath, como se muestra arriba.

Otros consejos

El verdadero problema aquí es que los caracteres [y] son ??ilegales en un atributo de identificación HTML4 (o XML) - mire lo siguiente:

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

(para la definición normativa del atributo id, consulte www.w3.org//TR/html401/struct/global.html#adef-id)

también puedes hacerlo de esta manera

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

para los elementos que tienen ID, puede llamarlos directamente a través de id porque siempre es único.

para descubrir xpaths, agregue un complemento 'xpath checker' a firefox. Ayuda mucho y es muy fácil

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top