我有一个HTML元素,如:
<div id="spam[500]">
我想搜索通过ID这个元素,但似乎引入nokogiri是越来越由[]混淆。 我尝试着:
doc.css("#spam[#{eggs.id}]")
但无济于事。
我有一个HTML元素,如:
<div id="spam[500]">
我想搜索通过ID这个元素,但似乎引入nokogiri是越来越由[]混淆。 我尝试着:
doc.css("#spam[#{eggs.id}]")
但无济于事。
克里斯,试试这个,让我知道,如果它的工作原理:
doc = Nokogiri::HTML(page)
el = doc.xpath("//div[@id='spam[500]']").first
问题是,你无法通过CSS访问它(即使是在浏览器)。 尝试设置为“垃圾邮件[500]”一些CSS属性,他们将不会被应用。 但是,您可以通过访问的XPath,如上图所示。
这里真正的问题是,字符[和]是在HTML4(或XML)id属性非法 - 看看下面:
http://www.w3.org/TR/html401/types.html#type-name
(id属性的规范定义看www.w3.org//TR/html401/struct/global.html#adef-id)
你也可以这样来做
el = doc.xpath("id(spam[500])").first
具有ID的元素,你可以通过ID,因为它始终是唯一的直接调用它们。
对于查不到的XPath,请添加“的XPath检查”插件的Firefox。 它帮助了很多,很容易