私は次のようなhtml要素を持っています:
<div id="spam[500]">
この要素をidで検索したいのですが、のこぎりが[]で混乱しているようです。私はしようとしています:
doc.css("#spam[#{eggs.id}]")
しかし、役に立たない。
私は次のようなhtml要素を持っています:
<div id="spam[500]">
この要素をidで検索したいのですが、のこぎりが[]で混乱しているようです。私はしようとしています:
doc.css("#spam[#{eggs.id}]")
しかし、役に立たない。
クリス、これを試してみて、うまくいくかどうか教えてください:
doc = Nokogiri::HTML(page)
el = doc.xpath("//div[@id='spam[500]']").first
問題は、CSSを介して(ブラウザでも)アクセスできないことです。「spam[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を見つけるには、Firefoxに「xpathchecker」プラグインを追加してください。それは大いにそして非常に簡単に役立ちます