回答編集履歴

1 コードの短縮

退会済みユーザー

退会済みユーザー

2017/09/30 21:34  投稿

```Ruby
require 'nokogiri'
html = <<-EOS
<html>
<head>
 <title>テスト</title>
</head>
<body>
<div>ダミー</div>
<div id="post">id数字なし</div>
<div id="post-1"><h2>記事1</h2></div>
<div id="post-2"><h2>記事2</h2></div>
<div id="post-3"><h2>記事3</h2></div>
</body>
</html
EOS
doc = Nokogiri::HTML.parse(html)
doc.xpath('//div[contains(@id, "post")]').each do |node|
 t = node.xpath('h2').text
 puts t if t != ''
doc.xpath('//div[contains(@id, "post-")]').each do |node|
 puts node.xpath('h2').text
end
```
出力例
```
記事1
記事2
記事3
```
mingos様のコードを一部引用。
参考:[xpathまとめ](https://qiita.com/merrill/items/aa612e6e865c1701f43b)

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る