今日も元気にテクニカル

技術情報書きたいけど本ブログに書きたくないからこんな名前になりました。

さらに

試してみる。

puts (doc/"ul")

#=>
<ul class="test_class_1" id="test_id_1">
    <li>test_li_11</li>
    <li>test_li_12</li>
    <li>test_li_13</li>
  </ul>
<ul class="test_class_2" id="test_id_2">
    <li>test_li_21</li>
    <li>test_li_22</li>
    <li>test_li_23</li>
  </ul>

ulタグのみ指定。指定した要素は空白文字が整形されて出力されるけど、子要素はHTMLに書かれた通りに出てくるみたい。# classとidがHTMLソースと逆になっているのはなぜだろう?そういうものなのかな。

# CSS
puts (doc/"ul#test_id_1")
# XPATH
puts (doc/"[@id=&#39;test_id_1&#39;]")

#=>
<ul class="test_class_1" id="test_id_1">
    <li>test_li_11</li>
    <li>test_li_12</li>
    <li>test_li_13</li>
  </ul>

idが"test_id_1"のもののみ出力。CSSでもXPATHでも同じことが出来ます。

(doc/"ul").each do |ul|
  (ul/"li").each do |li|
    puts li
  end
end

(doc/"ul li").each do |li|
  puts li
end

#=>
<li>test_li_11</li>
<li>test_li_12</li>
<li>test_li_13</li>
<li>test_li_21</li>
<li>test_li_22</li>
<li>test_li_23</li>

ulを指定して、さらにliを解析。こうすれば「指定した要素は空白文字が整形されて出力される」法則にのっとるので見やすい。これが本来の使い方だろうな。

↓このページはレベル高いかも
それHpricot(ry - walf443's blog