Ruby on rails 查找id为的标记,包括带有Nokogiri的[]

Ruby on rails 查找id为的标记,包括带有Nokogiri的[],ruby-on-rails,nokogiri,Ruby On Rails,Nokogiri,我有一个html元素,如: <div id="spam[500]"> 但是没有用。克里斯,试试这个,告诉我它是否有效: doc = Nokogiri::HTML(page) el = doc.xpath("//div[@id='spam[500]']").first 问题是你不能通过CSS(甚至在浏览器中)访问它。尝试为“垃圾邮件[500]”设置一些CSS属性,它们将不会被应用。但是,您可以通过xpath进行访问,如上所示。这里真正的问题是,字符[and]在HTML4(或XML)

我有一个html元素,如:

<div id="spam[500]">

但是没有用。

克里斯,试试这个,告诉我它是否有效:

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

问题是你不能通过CSS(甚至在浏览器中)访问它。尝试为“垃圾邮件[500]”设置一些CSS属性,它们将不会被应用。但是,您可以通过xpath进行访问,如上所示。

这里真正的问题是,字符[and]在HTML4(或XML)id属性中是非法的-请看以下内容:


(有关id属性的标准定义,请访问www.w3.org//TR/html401/struct/global.html#adef id)

您也可以这样做

el = doc.xpath("id(spam[500])").first
对于具有id的元素,您可以通过id直接调用它们,因为它总是唯一的

要查找xpath,请在firefox中添加“xpath检查器”插件。这很有帮助,而且非常简单

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