2

私の文字列の例はここにリストされています。すべての値の結果を配列またはハッシュに分割して、各要素の値を処理したい。

<div id="test">
           accno:          123232323 <br>
           id:            5443534534534 <br>
           name:            test_name <br>
           url:                  www.google.com <br>

 </div>

ハッシュまたは配列の各値を取得するにはどうすればよいですか。

4

2 に答える 2

1

html を処理している場合は、 nokogiriのような html/xml パーサーを使用して、 CSS セレクター<div>を使用して必要なタグのテキスト コンテンツを引き出します。次に、テキストをフィールドに解析します。

nokogiri をインストールするには:

gem install nokogiri

次に、ページとテキストを処理します。

require "nokogiri"
require "open-uri"

# re matches: spaces (word) colon spaces (anything) space
re_fields  = /\s+(?<field>\w+):\s+(?<data>.*?)\s/

# Somewhere to store the results
record = {}

page      = Nokogiri::HTML( open("http://example.com/divtest.html") )

# Select the text from <div id=test> and scan into fields with the regex 
page.css( "div#test" ).text.scan( re_fields ){ |field, data|
    record[ field ] = data
}
p record

結果:

{"accno"=>"123232323", "id"=>"5443534534534", "name"=>"test_name", "url"=>"www.google.com"}

複数のpage.css( "blah" )要素を処理している場合は、セレクターに配列としてアクセスすることもできます。.each

# Somewhere to store the results
records    = []

# Select the text from <div id=test> and scan into fields with the regex 
page.css( "div#test" ).each{ |div| 
    record = {}
    div.text.scan( re_fields ){ |field, data|
        record[field] = data
    }
    records.push record
}
p records
于 2014-05-08T09:06:54.943 に答える