例)下記のようなソースがあるとします。idやclassのような特定できるものがありません。
<table>
<tr>
<td>aaa</td><td>123</td>
</tr>
<tr>
<td>bbb</td><td>145</td>
</tr>
<tr>
<td>aaa</td><td>678</td>
</tr>
</table>
こちらでわかっていて、検索をすることができるのはaaaやbbbとなっている<td>の文字列で、欲しい情報はその隣の数値になっている<td>の情報です。今回は数値にしましたが、実際には文字列です。
この場合、例えば、bbbの文字列が入っている<td>の隣の<td>に含まれている文字列を取得するにはどのようにすればいいのでしょうか?
よろしくお願いします。
こんな感じなのかな、となんとなく思ってました。
agent.page.parser.search("td").each { |td| if td.text == "bbb" then puts td.next.text end }
参考。
http://nokogiri.org/Nokogiri/XML/Node.html
http://mechanize.rubyforge.org/Mechanize/Page.html
だって、難しいんですもの >xpath
stackoverflow に、こんなのも落ちてました。
http://stackoverflow.com/questions/8207044/using-ruby-mechanize-to-select-next-element-after-selected-element
puts agent.parser.xpath('.//td[.="bbb"]')[0].next.text
xpath使えるようなので
//td[normalize-space(text())='bbb']/following-sibling::td[1]/self::text()
かな?
http://www.techscore.com/tech/XML/XPath/XPath3/xpath03-2.html/
http://oshiete.goo.ne.jp/qa/5190224.html
ありがとうございます!xpath勉強いたします。
こんな感じなのかな、となんとなく思ってました。
agent.page.parser.search("td").each { |td| if td.text == "bbb" then puts td.next.text end }
参考。
http://nokogiri.org/Nokogiri/XML/Node.html
http://mechanize.rubyforge.org/Mechanize/Page.html
だって、難しいんですもの >xpath
stackoverflow に、こんなのも落ちてました。
http://stackoverflow.com/questions/8207044/using-ruby-mechanize-to-select-next-element-after-selected-element
puts agent.parser.xpath('.//td[.="bbb"]')[0].next.text
いつもありがとうございます!そして、お返事が遅くなってすみません。
何とかなりました。
色々な方法があるんですね。とても参考になりました。今後もよろしくお願いします。
いつもありがとうございます!そして、お返事が遅くなってすみません。
2013/02/21 10:02:49何とかなりました。
色々な方法があるんですね。とても参考になりました。今後もよろしくお願いします。