Find tag with id including [] with Nokogiri

后端 未结 3 1076
时光说笑
时光说笑 2021-02-14 05:09

I have an html element like:

I want to search for this element by id, but it seems that nokogiri is getting confus

相关标签:
3条回答
  • 2021-02-14 05:24

    Chris, try this and let me know if it works:

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

    The problem is that you can't access it via CSS (even in the browser). Try setting some CSS attributes for "spam[500]" and they won't be applied. You can access via xpath however, as shown above.

    0 讨论(0)
  • 2021-02-14 05:27

    The real problem here is that the characters [ and ] are illegal in an HTML4 (or XML) id attribute - look at the following:

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

    (for the normative definition of the id attribute look at www.w3.org//TR/html401/struct/global.html#adef-id)

    0 讨论(0)
  • 2021-02-14 05:38

    you can also do it this way

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

    for elements having id's you can call them directly through id because its always unique.

    for finding out xpaths, please add a 'xpath checker' plugin to firefox. It helps a lot and very easy

    0 讨论(0)
提交回复
热议问题